MongoDB删除返回nRemoved 0

时间:2015-04-22 09:43:52

标签: mongodb mongodb-query

我正在对Mongo Shell运行一个删除命令,它似乎没有删除任何文件:

C:\Program Files\MongoDB\Server\3.0\bin>mongo outputcachedb --eval "db.CacheItem
s.remove({ "Expiration" : { "$lte" : new Date() } });"
2015-04-22T11:30:30.957+0200 I CONTROL  Hotfix KB2731284 or later update is not
installed, will zero-out data files
MongoDB shell version: 3.0.2
connecting to: outputcachedb
WriteResult({ "nRemoved" : 0 })

如果我使用MongoVue运行相同的查询文档,它会找到(并在请求时删除)文档

2 个答案:

答案 0 :(得分:1)

我不确定为什么--eval不起作用,但我可以通过在shell中运行外部.js文件来实现这一点。

db.CacheItems.remove({ "Expiration" : { "$lte" : new Date() } });

进入remove.js然后

$ mongo outputcachedb remove.js

希望这适合你

答案 1 :(得分:1)

这是因为你有不正确的删除集合的程序。

解决方案和示例:

1- C:\ MongoDB \ Server \ 3.2 \ bin> mongo(由于您尚未连接到任何数据库,因此尚未发出命令,您只连接到数据库服务器mongodb)。

2-

  

显示dbs   analytics_database 0.000GB   本地0.000GB   test_database 0.000GB

3-

  

使用test_database   切换到db test_database

4 -

  

db.Collection.remove({“_ id”:ObjectId(“5694a3590f6d451c1500002e”)},1);   WriteResult({“nRemoved”:1})

现在你看到WriteResult({“nRemoved”:1})是1而不是0。

完成。