Mongo查询始终返回零文档

时间:2018-05-15 07:59:36

标签: python mongodb pymongo

可以编写一个总是返回集合中所有元素的查询,以pymongo为例:

MongoClient()["database"]["collection"].find({})

但是,由于我的代码结构,我非常希望能够构造一个相反的查询,一个在所有情况下都必须返回零元素的查询:

MongoClient()["database"]["collection"].find(null_query)

如何定义null_query,这是正确的?

1 个答案:

答案 0 :(得分:3)

您可以要求任何字段位于空列表中。使用_id字段似乎是合理的:

db.collection.find({_id: {$in: []}})

如果您想要更短的查询,则无需使用_id字段 在所有:

db.collection.find({_:{$in:[]}})

如果MongoDB版本> = 3.4:

,则替代

可以说人们也可以询问_id字段是否不存在,这是@ Marco13建议的:

db.collection.find({_id: {$exists: false}})

但是,这假定所有文档都有_id字段,对于3.4之前的MongoDB版本不一定如此,其中可以使用db.createCollection("mycol", {autoIndexID : false})创建集合,因此所有文档都不会自动赋予{ {1}}字段。