我有一系列ID,我想立即获取所有文档。为此,我正在写作,但它返回0条记录。
如何使用多个ID进行搜索?
db.getCollection('feed').find({"_id" : { "$in" : [
"55880c251df42d0466919268","55bf528e69b70ae79be35006" ]}})
我可以通过传递单个ID来获取记录,如
db.getCollection('feed').find({"_id":ObjectId("55880c251df42d0466919268")})
答案 0 :(得分:22)
MongoDB是类型敏感的,这意味着1
与'1'
不同,"55880c251df42d0466919268"
和ObjectId("55880c251df42d0466919268")
也是如此。后者是ObjectID类型但不是str,也是MongoDB文档的默认_id
类型。
您可以找到有关ObjectID here的更多信息。
试试吧:
db.getCollection('feed').find({"_id" : {"$in" : [ObjectId("55880c251df42d0466919268"), ObjectId("55bf528e69b70ae79be35006")]}});
答案 1 :(得分:15)
我相信你错过了ObjectId
。试试这个:
db.feed.find({
_id: {
$in: [ObjectId("55880c251df42d0466919268"), ObjectId("55bf528e69b70ae79be35006")]
}
});
答案 2 :(得分:2)
为了查找您必须使用的多个文件的记录" $ in"操作者 虽然您的查询很好,但您只需在为ID搜索数据时添加ObjectId
{{1}}
答案 3 :(得分:0)
我已经使用过,并且工作正常:
module.exports.obtenerIncidencias386RangoDias =函数(empresas,回调){
let arraySuc_Ids = empresas.map((empresa)=>empresa.sucursal_id)
incidenciasModel.find({'sucursal_id':{$in:arraySuc_Ids}
}).sort({created_at: 'desc'}).then(
(resp)=> {
callback(resp)}
)
};
其中:
empresas = [“ 5ccc642f9e789820146e9cb0”,“ 5ccc642f9e789820146e9bb9”]
答案 4 :(得分:-1)
db.getCollection({your_collection_name}).find({
"_id" : {
"$in" :
[({value1}),
({value2})
]
}
})