时间:2021-05-19
MongoDB一些概念
下面以MongoDB和MySql的对比来说明
MySQLMongoDB
database(数据库)db(数据库)
table(表)collection(集合)
row(行记录)document(文档)
column(列)field(字段)
primary key(指定主键)"_id" : ObjectId("******") 自动生成内置主键
Mysql的数据形式如下
同样的数据在MongoDB下类似于JSON键值对,叫BSON,如下
MongoDB的CRUD
windows下安装成功后,使用mongod命令启动服务,使用mongo命令默认连接到test库
1,创建集合
创建user集合:db.createCollection("user") //不需要定义字段
2,插入
插入name=wangxu,age=27的记录:db.user.insert({"name":"wangxu","age":27})
3,查询
查询全部:db.user.find()
查询name=wangxu的记录:db.user.find({"name":"wangxu"})
4,更新
将name=wangxu的记录age更新成30:db.user.update({name:"wangxu"},{"$set":{"age":30}})
5,删除
删除name=wangxu的记录:db.user.remove({"name":"wangxu"})
删除全部:db.user.remove()
6,删除集合
删除user集合: db.user.drop()
Java调用MongoDB
引入MongoDB的Java驱动包后,测试代码如下:
package com.wx.test;import java.util.ArrayList;import java.util.List;import org.bson.Document;import com.mongodb.MongoClient;import com.mongodb.client.FindIterable;import com.mongodb.client.MongoCollection;import com.mongodb.client.MongoCursor;import com.mongodb.client.MongoDatabase;import com.mongodb.client.model.Filters;/** * 测试mongodb 测试点:增加,查询,更新,删除 * * @author wangxu * @date 2016-3-27 */public class TestMongoDB { public static void main(String[] args) { // 建立连接,MongoDB默认是没有用户名及密码 MongoClient mongoClient = new MongoClient("localhost", 27017); // 获取test库 MongoDatabase db = mongoClient.getDatabase("test"); // 创建集合 db.createCollection("user"); // 获取集合 MongoCollection collection = db.getCollection("user"); // 插入文档(支持多条) Document document = new Document("name", "wangxu").append("age", "27"); Document document2 = new Document("name", "wangxu_java").append("age", "27"); List<Document> documents = new ArrayList<>(); documents.add(document); documents.add(document2); collection.insertMany(documents); // 更新wangxu的age为30 collection.updateMany(Filters.eq("name", "wangxu"), new Document( "$set", new Document("age", 30))); // 查询文档 FindIterable<Document> findIterable = collection.find(); MongoCursor<Document> mongoCursor = findIterable.iterator(); // 遍历游标 while (mongoCursor.hasNext()) { Document doc = mongoCursor.next(); System.out.println("name=" + doc.get("name")); } // 删除wangxu_java collection.deleteMany(Filters.eq("name", "wangxu_java")); }}关于Java驱动包的一个疑问
MongoClient mongoClient = new MongoClient("域不存在", 27017); //建立连接当我保存上面的代码时,发现不需要处理异常,开始我以为异常被设计成了“非检查异常”,运行时会抛出来,最后测试发现根本不会抛任何异常,后续的CRUD操作时会抛异常,但几乎都是非检查异常,个人感觉这种设计是不是有点不符合Java的异常分类机制?
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了java+MongoDB实现存图片、下载图片的方法。分享给大家供大家参考,具体如下:1.存图片demo:将某个文件存到mongoDB,这个file
前言Golang对MongoDB的操作简单封装使用MongoDB的Go驱动库mgo,对MongoDB的操作做一下简单封装mgo(音mango)是MongoDB的
小小最近接触了MongoDB,所以这里开始学习MongoDB,之用户管理模块的相关内容。进入MongoDB的Shell这里输入如下的命令,进入MongoDB的s
前边有一篇记录过不使用spring,直接在java代码中连接和操作mongodb数据库,这里就紧随其后记录一下使用spring的情况下,在java中简单操作mo
前言最近突然对数据库和后台感兴趣了,就开始了漫长的学习之路,想想自己只是一个前端,只会java斯科瑞普,所以就开始看nodejs,看着看着突然发现mongodb