本文主要是介绍MongoDB初识之CURD,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 增删改查
1.1. 插入
1.1.1. Insert()
db.blog.inset({“_id”:1},{“name”:”swl”})
1.2. 删除
1.2.1. remove()
db.blog.remove({_id:1}) //删除指定集合
Db.blog.remove(null) //删除所有集合
1.3. 更新
1.3.1. update
db.blog.update({_id:1})
1.3.2. 修改器
1.3.2.1. $inc 计数器 注:若键不存在,则创建这个键
db.blog.update({“_id”:1},{$inc:{“count”:1}})
1.3.2.2. $set 指定一个键的值,若键不存在,则创建这个键
db.blog.update({“_id”:1},{$set:{“name”:”swl”}})
db.blog.update({“_id”:1},{$set:{“users”:[“swl”,”xxx”]}})
1.3.2.3. 数组修改器
1.3.2.3.1 $push
db.blog.update({“_id”:1},{$push:{“users”:”yyyy”}})
1.3.2.3.2 $addToSet 如果元素在数组中不存在,则添加
db.blog.update({“_id”:1},{$addToSet:{“users”:”yyy”}})
1.3.2.3.3. $ne 查询数组中是否存在某个元素,不存在,则添加
db.blog.update({“_id”:1,{$ne:{“users”:”qqq”}}},{“$push”:{“users”:”qqq”}})
1.3.2.3.4. $addToSet和$each结合,添加多个不同的值
db.blog.update({“_id”:1},{“$addToSet”:{“users”:{“$each”:[“aaa”,”bbb”,”ccc”]}}})
1.3.2.3.5. $pop 删除元素(首位或末尾)
db.blog.update({“_id”:1},{“$pop”:{“users”:{key:1}}}) //从数组末尾开始删除
db.blog.update({“_id”:1},{“$pop”:{“users”:{key:-1}}}) //从数组首部开始删除
1.3.2.3.5. $pull 删除指定元素
Db.blog.update({“_id”:1},{“$pull”:{“users”:”bbb”}})
1.3.2.3.6. 通过数组元素的位置修改元素
db.blog.update({“_id”:1},{“$set”:{“users.0”:15}}) //users.0 指向users数组的第一个元素
db.blog.update({"_id":1,"users":1100},{"$inc":{"users.$":100}}) //用$代替匹配到的元素
1.3.2.4. upsert 若没有文档符合更新条件,则以这个条件和更新文档为基础创建一个新的文档
db.blog.update({“_id”:1},{“name”:”swl”},true)
1.3.2.5. save Sheli 帮助程序
描述:文档不存在是插入,存在时更新。
eg:
>var x = db.blog.findOne()
>x.name = “xxx”
>db.blog.save(x)
等价于
Db.blog.update({“_id”:x._id},x)
1.3.2.6. 多文档更新,指定update第四个参数为true即可。
db.blog.update({"name":"xxx"},{"$set":{"name":"yyy"}},false,true)
1.4. 查找
1.4.1. find() @return:返回查询的所有集合
db.blog.find()
db.blog.find({“name”:”swl”})
1.4.2. findOne() @return:返回查询的第一个集合
db.blog.findOne()
db.blog.findOne({“name”:”swl”})
1.4.3. 条件查询
1.4.3.1. 指定返回的键
db.blog.find({},{“name”:1}) //1: name键要返回
db.blog.find({},{“name”:0}) //0: name键除外,都要返回
1.4.3.2. 大于等于小于
Key:$lt(less than)、$lte(less than or equal to)
$gt(greater than)、$gte(greater than or equal to)
db.blog.find({age:{“$gt”:10,”$lt”:20}})
1.4.3.3 OR查询
Key: $in、$nin、$or
db.blog.find({“age”:{“$in”:[20,50,80]}}) //满足一个条件即返回
db.blog.find({“age”:{“$nin”:[20,50,80]}})
db.blog.find({“$or”:[{“name”:{“$in”:[“xxx”,”yyy”]}},{“age”:20}]}) //名字为”xxx”或者”yyy”或者年龄为20的人。
1.4.3.4. $mod 取余
db.blog.find({“age”:{“$mod”:[5,2]}}) //@return age%5 == 2
1.4.3.5. $not 取反
db.blog.find({"age":{"$not":{"$mod":[5,0]}}}) //@return age%5 != 2
1.4.3.6. 正则匹配
db.blog.find({"name":/^y/g})
1.4.3.7. 数组查询
1.4.3.7.1 单条件查询
db.blog.find({“users”:”xxx”})
1.4.3.7.2. $all 多条件查询
db.blog.find({"users":{"$all":["xxx","yyy"]}})
1.4.3.7.3. 精确匹配查询
db.blog.find({"users":["xxx","yyy","zzz","ooo"]}) //注:元素顺序必须与数据库中一致
db.blog.find({“users.1”:”yyy”}) //@return 第二个元素为”yyy”的文档
1.4.3.7.4. $size 根据数组长度查询
db.blog.find({"users":{"$size":7}})
1.4.3.7.5. $slice @return 数组子串
db.blog.find({},{"users":{"$slice":2}}) //@return 前两个元素
db.blog.find({},{"users":{"$slice":-2}}) //@return 后两个元素
db.blog.find({},{"users":{"$slice":[2,10]}}) //@return from 3 to 3
1.4.3.7.6. $elemMatch 嵌套文档查询
db.blog.find({“comments”:{“$elemMatch”:{“author”:”Jhon”,”score”:{“$gte”:5}}}})
1.4.3.8. null查询
A. db.blog.find({“Z”:null}) //@return Z为null或者不存在Z的文档
B. db.blog.find({“Z”:{“$in”:[null],”$exits”:true}}) //@return 存在元素z并且值为null
1.4.3.9. $where
通过表达式进行查询
2. 游标
2.1. limit 设定返回的条目数
db.blog.find().limit(3) //最多三条
2.2. skip
Db.blog.find().skip(2) //忽略前两条
2.3. sort 排序
Db.blog.find().sort({“_id”:1}) //正序
db.blog.find().sort({“_id”:-1}) //倒序
2.4 hasNext
var cursor = db.blog.find();
while(cursor.hasNext()){
var doc = cursor.next();
}
这篇关于MongoDB初识之CURD的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!