mongodb中find $ne null 與$exists的區別
阿新 • • 發佈:2018-12-26
1.
test collection 資料為:
db.test.find()
{ "_id" : ObjectId("5be29949f1acad52e4c10b98"), "name" : "jane", "info" : [ ] }
{ "_id" : ObjectId("5be29952f1acad52e4c10b99"), "name" : "mike", "info" : { } }
{ "_id" : ObjectId("5be29ab7f1acad52e4c10b9a"), "name" : "john", "info" : { "age" : 19, "height" : 180 } }
2.
執行以下命令時:
db.test.find({"info.age":{"$ne":null}})
info 為[] 的也會被找到。網上找了下沒找到具體解釋。
{ "_id" : ObjectId("5be29949f1acad52e4c10b98"), "name" : "jane", "info" : [ ] }
{ "_id" : ObjectId("5be29ab7f1acad52e4c10b9a"), "name" : "john", "info" : { "age" : 19, "height" : 180 } }
3.
db.test.find({"info.weight" :{"$ne":null}})
{ "_id" : ObjectId("5be29949f1acad52e4c10b98"), "name" : "jane", "info" : [ ] }
4.
但是如果執行以下語句。
db.test.find({"info.age":{"$exists":true}})
只有一條資料找到。
{ "_id" : ObjectId("5be29ab7f1acad52e4c10b9a"), "name" : "john", "info" : { "age" : 19, "height" : 180 } }