MongoDB查询、插入、更新

一、特定类型的查询

1.null

注:null不仅会匹配某个键的值为null的文档,还会匹配不包含这个键的文档。如果仅想匹配键值为null的文档,既要检查该键的值是否为null,还要通过"$exists"条件判断键值已存在。

db.getCollection('user').find({"z":{"$in":[null],"$exists":true}})

2.正则表达式

db.getCollection('user').find({"email":/96/})

使用Perl兼容的正则表达式,也可以匹配值为正则表达式自身。

3.数组

$all(与顺序无关)--db.food.find({"fruit": {"$all": ["apple", "banana"]}})

数组特定位置的元素db.food.find({"fruit.0":"apple"})--查找第一个元素是apple的

$size--db.food.find({"fruit":{"$size":3}})

$slice--返回某个键匹配的数组元素的一个子集db.blog.posts.findOne(criteria,{"comments":{"$slice":10}})返回前10条评论,后10条用-10,也可返回集合中间的结果db.blog.posts.findOne(criteria,{"comments":{"$slice":[23,10]}})跳过前23个元素。

"comments.$":1--得到一个匹配的元素

"$elemMatch"--a..同时使用查询条件中的两个语句与一个数组元素进行比较{"x":{"$elemMatch":{"$gt":10, "$lt":20}}},不匹配非数组

                     b.将限定条件进行分组,仅当需要对一个内嵌文档的多个键操作时才会用到。{"comments":{"$elemMatch":{"author":"joe", "score":{"$gte":5}}}}

二、插入

db.foo.insert({bar:"bax"})

三、更新

db.people.update({"name": "joe"}, joeDocument)

$set--用于指定一个字段的值,如果这个字段不存在,就创建它。db.people.update({"name": "joe"}, {"$set":{"favorite book":"War and Peace"}})

$unset:{"favorite book":1}-可以将这个键完全删除

$inc--增加

$push--向已有的数组末尾加一个元素,要是没有就创建一个新的元素

$addToSet:--可以避免输入重复值

四、删除

db.foo.remove({})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值