使用過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"] } }