导图社区 MongoDB
这是一篇关于MongoDB的思维导图,主要包括:定义、操作的数据特点、操作、Java操作MongDB数据库、SpringDataMongoDB。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
MongoDB
定义
NoSQL(非关系型数据库)
默认端口号:27017
操作的数据特点
数据量大
写入操作频繁
价值低
操作
创建、使用数据库
use 数据库名
当没有该数据库时创建数据库
有该数据库则切换数据库
增
db.集合名称.insert(数据);
例:db.spit.insert({content:"今天天气好晴朗",userid:"1",nickname:"小标",visits:NumberInt(902)})
删
db.集合名称.remove(条件)
全部删除
db.spit.remove({})
删除 visits=1000 的记录
db.spit.remove({visits:1000})
改
db.集合名称.update(条件,修改后的数据)
修改_id 为 1 的记录,浏览量为 1000
db.spit.update({_id:"2"},{$set:{visits:NumberInt(2000)}})
查
查询全部
db.集合名称.find()
例:db.spit.find()
条件查询
查询 userid 为 1的记录
db.spit.find({userid:'1'})
返回符合条件的第一条数据
db.spit.findOne({userid:'1'})
返回指定条数的记录
db.spit.find().limit(3)
模糊查询
查询昵称为小开头的
db.spit.find({nickname:/^小/})
查询昵称为小结尾的
db.spit.find({nickname:/小$/})
其他操作
统计记录条件使用 count()方法
统计 spit 集合的记录数
db.spit.count()
统计 userid 为 3的记录条
db.spit.count({userid:"3"})
大于($gt) 小于($lt) 不等于($ne)大于等于($gte)小于等于($lte)
db.集合名称.find({ "field" : { $gt: value }}) // 大于: field > value
db.集合名称.find({ "field" : { $lt: value }}) // 小于: field < value
db.集合名称.find({ "field" : { $gte: value }}) // 大于等于: field >= value
db.集合名称.find({ "field" : { $lte: value }}) // 小于等于: field <= value
db.集合名称.find({ "field" : { $ne: value }}) // 不等于: field != value
包含($in)与不包含($nin)
userid 字段包含 3和 4的文档
语法:db.spit.find({'field':{$in:["value","value"]}})
例:db.spit.find({userid:{$in:["3","4"]}})
userid 字段不包含 3和 4的文档
db.spit.find({userid:{$nin:["3","4"]}})
条件连接 与($and)或($or)
visits 大于等于 1000 并且小于 2000
语法:db.spit.find($and:[ { },{ },{ } ])
例:db.spit.find({$and:[ {visits:{$gte:1000}} ,{visits:{$lt:2000} }]})
userid 为 3,或者浏览量小于 2000
语法:$or:[ { },{ },{ } ]
例:db.spit.find({$or:[ {userid:"3"} ,{visits:{$lt:2000} }]})
列值增长($inc)
_id为2的visits值加1
db.spit.update({_id:"2"},{$inc:{visits:NumberInt(1)}} )
Java操作MongDB数据库
需要依赖
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver</artifactId> <version>3.6.3</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies>
编写测试类
通用步骤
创建MongoDB客户端对象指定主机和端口
MongoClient client = new MongoClient("localhost", 27017);
指定连接的数据库
MongoDatabase spitdb = client.getDatabase("spitdb");
获取文档对象
MongoCollection<Document> spit = spitdb.getCollection("spit");
查询全部记录
FindIterable<Document> docs = spit.find();
封装BasicDBObject对象
BasicDBObject dbObject=new BasicDBObject("userid","1");
FindIterable<Document> docs = spit.find(dbObject);
查询浏览量大于 1000 的记录
BasicDBObject dbObject=new BasicDBObject("visits",new BasicDBObject("$gt",1000));
插入数据
Document doc=new Document(); doc.put("_id","10"); doc.put("content","还珠格格这部剧很好"); doc.put("visits",2000); doc.put("nickname","小标"); doc.put("userid","1");
添加一个文档
spit.insertOne(doc);
关闭连接,释放资源
client.close();
SpringDataMongoDB
SpringData 家族成员之一,用于操作 MongoDb 的持久层框架,封装了底层的mongodbdriver。