mongodb特定情况查询

2,424次阅读
没有评论

共计 713 个字符,预计需要花费 2 分钟才能阅读完成。

mongodb特定情况查询

1、null查询

db.test.find({"enemies":null})

{ 
    "_id" : ObjectId("5b042463c42e07823911338e"), 
    "name" : 25.0, 
    "friends" : 3.0
}
{ 
    "_id" : ObjectId("5b0811893ba23b5c3e762811"), 
    "enemies" : null
}

在上面我们可以发现第二个文档的确是符合我们的查询条件的,也就是”enemies” : null,但是第一个文档为啥也会被查询出来?
因为第一个文档中根本没有对应的字段,对于null的查询,如果文档中没有对应的字段也是会被查询出来的。

所以我们要如何处理这个问题?也就是只想输出上面的结果中的第二条数据
mongodb是没有eq函数的,所以可以使用下面这个方法

db.test.find({"enemies":{"in":[null],"exists":true}})


{ 
    "_id" : ObjectId("5b0811893ba23b5c3e762811"), 
    "enemies" : null
}

2、正则式查询

db.test.find({"name":/^he*/i})
{ 
    "_id" : ObjectId("5afd34052c63ae1a943bdb27"), 
    "name" : "hello", 
    "friends" : 34.0, 
    "enemies" : 2.0, 
    "favor" : [
        "2", 
        "3", 
        "4", 
        "6", 
        "7", 
        "8", 
        "9", 
        "10", 
        "1"
    ], 
    "mul" : 1.0
}

/i就是表明是使用正则表达式的方式查询所需要的文档,具体正则表示需要去看使用文档,但是一般情况下正则表达式的使用规则都是一样的,比如^表示开始匹配的意思

正文完
请博主喝杯咖啡吧!
post-qrcode
 
admin
版权声明:本站原创文章,由 admin 2018-05-25发表,共计713字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码