如何检查是否存在多个文档
How to check if multiple documents exist
是否有这样一个获取多个字段的查询,returns集合中存在哪些?
例如,如果集合只有:
{id : 1}
{id : 2}
而我想知道其中存在[{id : 1} , {id : 3}]
中的哪一个,那么结果将类似于[{id : 1}]
。
如果您想检查集合中是否存在 key with value
,您可以使用 $or
运算符通过匹配值和组合条件来简单地检查。
考虑到 id
不同于 mongo 中的 _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")}]}
您正在寻找 $in-operator。
db.collection.find({ id: { $in: [ 1, 3 ] } });
这将为您提供 ID 字段(不同于特殊的 _id
字段)为 1 或 3 的任何文档。当您只需要 id 字段的值而不是整个文档时:
db.collection.find({ id: { $in: [ 1, 3 ] } }, { _id: false, id:true });
是否有这样一个获取多个字段的查询,returns集合中存在哪些? 例如,如果集合只有:
{id : 1}
{id : 2}
而我想知道其中存在[{id : 1} , {id : 3}]
中的哪一个,那么结果将类似于[{id : 1}]
。
如果您想检查集合中是否存在 key with value
,您可以使用 $or
运算符通过匹配值和组合条件来简单地检查。
考虑到 id
不同于 mongo 中的 _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")}]}
您正在寻找 $in-operator。
db.collection.find({ id: { $in: [ 1, 3 ] } });
这将为您提供 ID 字段(不同于特殊的 _id
字段)为 1 或 3 的任何文档。当您只需要 id 字段的值而不是整个文档时:
db.collection.find({ id: { $in: [ 1, 3 ] } }, { _id: false, id:true });