ObjectId并在moongodb中找到

时间:2016-04-29 03:24:24

标签: node.js mongodb mongoose

查找项目

Products.findOne({"_id":"123456"}, callback);

找到我必须做的事情

Products.find({"_id":{$in:[ObjectId("123456"),ObjectId("7891011")]}}, callback);

但为什么我需要在第二个查询中使用ObjectId()?第一个工作没有使用ObjectId(),他们的架构是相同的

1 个答案:

答案 0 :(得分:0)

如果在节点中使用mongooose,则无需转换为ObjectId, 使用聚合时,您可能需要将其转换为ObjectId。

 var toMongoObjectId = function (ids) {
     return new Promise(function (resolve, reject) {
       if (ids.constructor === Array) {
         resolve(ids.map(mongoose.Types.ObjectId));
       }
       resolve(mongoose.Types.ObjectId(ids));
 })
}

转换为ObjectId

toMongoObjectId(ids).then(function(ObjectIds){
         //ObjectIds
})