可以编写一个始终返回集合中所有元素的查询,以pymongo为例:
MongoClient()["database"]["collection"].find({})
但是,由于代码的结构,我很想能够构造一个相反的查询,该查询在所有情况下都必须返回零元素:
MongoClient()["database"]["collection"].find(null_query)
我如何定义null_query,这样才正确?
解决方法:
您可以要求任何字段都为空列表.对此使用_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})创建集合的版本),此字段不一定是正确的,因此不会自动给出所有文档_id字段.
标签:mongodb,pymongo,python 来源: https://codeday.me/bug/20191109/2011023.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。