这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
书接上一节,本节继续记录学习mongoDB时的学习笔记。这部分的内容主要是关于数据库的一些增删改差点基本操作。
一.增删改
1.增
- 单条文档
db.集合名称.insertOne({键:"值"...}); - 多条文档
db.集合名称.insertMany( [ {键:"值"...} , {键:"值"...} , ...],//文档数组 { writeConcern: 1,//写入策略,默认是1,即要求确认写操作,0是不要求 ordered: true //指定是否按顺序写入,默认true } ) //或者 db.集合名称.insert([ {键:"值"...}, {键:"值"...}, ... ]); - 脚本方式
for(let i=0; i<100; i++){ db.集合名称.insert({_id:i,键:"值"...}); }- 注意:每个文档都有一个_id作为唯一标识,_id会默认自动生成,也可以手动指定,但不能重复
2.删
- 文档删除
db.集合名称.remove( {query} { justOne: <boolean>, writeConcern: <document> } )- 参数说明
query:可选 删除的文档的条件。justOne: 可选 如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。writeConcern:可选抛出异常的级别。
- 参数说明
3.改
db.users.updateOne/updateMany({条件},{$set:{新内容}});
二.查
- 查询所有
db.集合名称.find();
- 对比语法
| 操作 | 格式 |
|---|---|
| 等于 | {<key>:<value>} |
| 小于 | {<key>:{$lt:<value>}} |
| 小于或等于 | {<key>:{$lte:<value>}} |
| 大于 | {<key>:{$gt:<value>}} |
| 大于或等于 | {<key>:{$gte:<value>}} |
| 不等于 | {<key>:{$ne:<value>}} |
-
AND
db.集合名称.find({key1:value1,key2:value2})- 注意:如果条件中一个字段出现多次,后面的会将前面的覆盖掉
-
AND和OR联合
db.集合名称.find(
{
key1:value1,
$or: [
{key1:value1},{key2:value2}
]
}
)
-
数组查询
- 根据数组含有的值
db.集合名称.find({数组名称:value}) - 根据数组的长度
db.集合名称.find({数组名称:{$size:n}})
- 根据数组含有的值
-
模糊查询
- 条件值用正则表达式
-
排序
db.集合名称.find().sort({key1:rule,key2:rule})
//rule: 1升序 -1降序
- 分页查询
db.集合名称.find().sort({key:rule}).skip(开始).limit(查询条数)
- 总条数
db.集合名称[.find({key:value})].count
- 去重
db.集合字段.distinct(key)
- 指定返回字段
db.集合名称.dind({条件},{key1:rule,key2:rule}) //rule: 1返回,0不返回- 注意:要么都是0,要么都是1,否则会冲突