我似乎无法从命令行 .remove() 。如果我进入 mongo shell,我的查询工作正常,但不是直接来自 bash。
$ mongo mydatabase --eval 'db.mytable.remove({expires: {$lt: Math.round(new Date().getTime() / 1000)}})'
MongoDB shell version: 2.0.6
connecting to: mydatabase
当通过 mongo shell 手动运行时,此命令需要数小时才能在我们的所有数据上运行。它会像上面一样从 bash shell 立即返回而不会出错。
我知道有数据,可以用类似的方法确认--eval
:
$ mongo mydatabase --eval 'printjson(db.mytable.findOne({expires: {$lt: Math.round(new Date().getTime() / 1000)}}))'
MongoDB shell version: 2.0.6
connecting to: mydatabase
{
"_id" : "39e493ccef9d58bf75d856f55fb269f6",
"value" : "mydata",
"expires" : NumberLong(1371486135)
}
任何想法为什么db.mytable.remove()
失败而没有错误?