共计 713 个字符,预计需要花费 2 分钟才能阅读完成。
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就是表明是使用正则表达式的方式查询所需要的文档,具体正则表示需要去看使用文档,但是一般情况下正则表达式的使用规则都是一样的,比如^表示开始匹配的意思
正文完
请博主喝杯咖啡吧!