node.js - mongodb node.js 查找数组中存在多个 ID 的文档

标签 node.js mongodb mongoskin

我有一个包含 mongodb 集合 ID 的数组

array = [ '573163a52abda310151e5791',
         '57358e5dbd2f8b960aecfa8c',
         '573163da2abda310151e5792' ]

像这样,在我的 nodejs 代码中我想找到所有这些 Id 的文档。我使用的包是 mongoskin。

根据文档,这是找到结果的正确方法,它给了我想要的结果。但是这里我想使用数组而不是直接值,但无法找出如何做到这一点

   db.coll.find({
                _id: {
                    $in: [mongoskin.helper.toObjectID("573163da2abda310151e5792"),
                          mongoskin.helper.toObjectID("57358e5dbd2f8b960aecfa8c"),
                          mongoskin.helper.toObjectID("573163a52abda310151e5791")
                    ]
                }
            }).toArray(function(err, docs) {
                console.log(docs);
                res.send(docs)
            });

最佳答案

我对 mongoskin 了解不多,但也许你可以试试这个......

var newArray = oldArray.map(function(ele) {
  return mongoskin.helper.toObjectID(ele);
});
OR
var newArray = oldArray.map(mongoskin.helper.toObjectID(ele));

所以现在您可以在查询中使用 newArray

db.coll.find({
            _id: {
                $in: newArray
            }
        }).toArray(function(err, docs) {
            console.log(docs);
            res.send(docs)
        });

关于node.js - mongodb node.js 查找数组中存在多个 ID 的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37222356/

相关文章:

MongoDB:使用 CompositeServerSelector 选择服务器 30000 毫秒后发生超时

javascript - 使用 mongoskin 对 mongodb 进行单个查询或多个查询???

node.js - 对于数量大于 10 的更新组,TransactWriteItems API 失败。错误 : Member must have length less than or equal to 10

node.js - sails.js - 我想在升 sails 后动态添加数据库连接

mongodb - 选择一个包含元素数量有限的数组的文档

node.js - 如何使用 node.js/mongodb 在 HTML 中显示任意的无模式数据

node.js - 结构推荐

mysql - 在 Node js 应用程序中将 <用户名>@<计算机名> 更改为 <用户名>@localhost

node.js - Nodejs 内存限制为 512 MB

java - MongoDB "find"查询具有多个查询文档