每个用户都有一个手机号码,我想查看我的地址簿中是否还有其他用户。
所以我有1000个数字,我想检查数据库中是否有任何数字,所以我最初的想法是,对于每个数字,我运行一个mongodb查询:
for (var i=0; i < numbers.length; i++) {
db.users.findOne({phoneNumber: numbers[i]});
}
但是有人建议我这样做:
db.users.find($or: numbers.map(function(number){return {phoneNumber: number}}));
// That would result into a
// db.users.find($or:[{phoneNumber: "123"}, {phoneNumber: "234"}...])
现在是两个相当的?第二种方式更贵吗?
答案 0 :(得分:4)
使用$in
是查找phoneNumber
中出现numbers
的文档的最简洁方法:
db.users.find({phoneNumber: {$in: numbers}})