查找项目
Products.findOne({"_id":"123456"}, callback);
找到我必须做的事情
Products.find({"_id":{$in:[ObjectId("123456"),ObjectId("7891011")]}}, callback);
但为什么我需要在第二个查询中使用ObjectId()?第一个工作没有使用ObjectId(),他们的架构是相同的。
答案 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));
})
}
toMongoObjectId(ids).then(function(ObjectIds){
//ObjectIds
})