我正在对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运行相同的查询文档,它会找到(并在请求时删除)文档
答案 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。
完成。