mongoDB find的$in $all的区别
使用过mysql的人知道in是完全匹配的,如果想实现匹配其中的一个字段,那么需要使用find_in_set. 在使用mongodb开发的过程中遇到过类似的需求,实现方法也很简单,只需使用in即可,如果是all的话,那么表示完全匹配。来看个实例
mongodb $in 查询
1 2 3 |
> db.col_content.find({'nodeID':{$in:['7788']}}) { "_id" : ObjectId("525baa67539d1ec00700002a"), "nodeID" : [ "7788" ], "i" : 3 } { "_id" : ObjectId("525baab1539d1ec00700002b"), "nodeID" : [ "123", "7788" ], "i" : 4} |
mongodb $all 查询
1 2 |
> db.col_content.find({'OUT':{$all:['123','7788']}}) { "_id" : ObjectId("525baab1539d1ec00700002b"), "OUT" : [ "123", "7788" ], "i" : 4} |
上面可以看出区别了
{ "is_effect" : { "$in" : ["1"] } }