mongodb find查询返回的结果不一致

2024-04-20 00:55:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我对mongodb数据库中的一个集合运行了以下查询。在

db.coll.find({field_name:{$exists:true}}).count()并返回2437185。db.coll.find({}).count()报告的总记录数为2437228。在

现在当我运行查询db.coll.find({field_name:{$exists:false}}).count()时,它没有返回43,而是返回了0。在

我有两个问题:

  1. 上述情况是否意味着我的集合中的数据已损坏?。

  2. 我之前在(Updating records in MongoDB through pymongo leads to deletion of most of them)上发了一个关于这个的问题。回复的人说,在mongodb中更新数据可以清空数据,但不能删除。那是什么意思?。

谢谢你


Tags: of数据name数据库falsetruefielddb
1条回答
网友
1楼 · 发布于 2024-04-20 00:55:56

我相信您遇到了在SERVER-1587上报告的问题。你在使用什么版本的MongoDB?如果小于1.9.0,可以使用以下方法作为解决方法:

db.coll.find({field_name: {$not: {$exists: true}}}).count()

至于另一个问题,本例中的“空白”意味着更新可以更改文档中任何或所有字段的值或取消设置,但不能删除文档本身。删除文档的唯一方法是使用remove()

相关问题 更多 >