是否有这样的查询获取多个字段,并返回集合中存在哪些字段? 例如,如果集合只有:
{id : 1}
{id : 2}
我想知道其中存在[{id : 1} , {id : 3}]
中的哪一个,然后结果将类似于[{id : 1}]
。
答案 0 :(得分:10)
您正在寻找$in-operator。
db.collection.find({ id: { $in: [ 1, 3 ] } });
这将为您提供id-field(与特殊_id
字段不同)为1或3的任何文档。当您只需要id字段的值而不是整个文档时:
db.collection.find({ id: { $in: [ 1, 3 ] } }, { _id: false, id:true });
答案 1 :(得分:1)
如果您想检查提供的key with value
是否存在,则只需使用$or
运算符匹配值和组合条件即可进行检查。
在mongo中考虑id
与_id
不同。
您可以使用$or获取预期的输出,查询将如下所示。
db.collection.find({$or:[{"id":1},{"id":3}]},{"_id":0,"id":1})
如果您想匹配_id
,请使用以下查询:
db.collection.find({$or:[{"_id":ObjectId("557fda78d077e6851e5bf0d3")},{"_id":ObjectId("557fda78d077e6851e5bf0d5")}]}