javascript - MongoDB 一个查询与多个 OR 或多个查询?

标签 javascript mongodb mongoose

每个用户都有一个手机号码,我想检查我的通讯录中是否还有其他用户。

所以我有 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"}...])

现在这两个相等吗?第二种方式更贵吗?

最佳答案

使用$in将是查找 phoneNumber 出现在 numbers 中的文档的最简洁方法:

db.users.find({phoneNumber: {$in: numbers}})

关于javascript - MongoDB 一个查询与多个 OR 或多个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21650242/

相关文章:

javascript - 检查变量是否为字符串的简单方法?

node.js - 投影不适用于 mongo 中的 db.collection.find

c# - 聚合后的 MongoDb 计数 C# 2.0 驱动程序

javascript - MongoDB 模式设计 - 巨大的列表

javascript - 通过特定的 data-gt 删除 li 子项

javascript - 在同一浏览器中的页面实例之间发送通知

mongodb - 如何在 MongoDb 中进行不区分大小写的聚合分组?

node.js - Mongoose Schema 设置过期字段来删除文档?

node.js - 具有唯一模式键的 Mongoose 重复项

javascript - 我如何在 Javascript 中添加/删除 css 类 div?