运行db.messages.remove()时出现此错误。 “删除需要在src / mongo / shell / collection.js上查询”。有任何解决此错误的建议吗?
答案 0 :(得分:57)
正如消息所示,您需要提供查询,但它可以是空的(如果您要删除所有文档):
db.messages.remove({})
编辑:我想强调Stennie发表的评论:
注意:如果您确实要删除集合中的所有文档,那么执行
collection.drop()
会更快。remove()
操作将单独删除文档&删除文件时更新索引;drop()
将立即删除所有文件&集合的索引。
答案 1 :(得分:2)
如果您要删除集合messages
,则需要执行db.messages.drop()
。
否则,命令db.messages.remove()
用于删除特定文档,因此您需要编写一个查询以允许MongoDB引擎知道需要删除哪个文档。对于前者db.messages.remove({_ id:})。
缺少{_id:}会导致错误remove needs a query...
。
答案 2 :(得分:1)
执行命令
db.collectionname.remove({});
结果:
WriteResult({ "nRemoved" : 7 })
答案 3 :(得分:0)
从MongoDB数据库中删除所有集合,使用下面的语法:
db.getCollectionNames().forEach(
function(collection_name){
print('CollectionName: '+ collection_name +', '+ db[collection_name].remove({})
)
});
输出:
CollectionName: Document_CODE, WriteResult({ "nRemoved" : 20 })
CollectionName: Document_DATA, WriteResult({ "nRemoved" : 10 })
CollectionName: Document_NAME, WriteResult({ "nRemoved" : 10 })
CollectionName: Document_COLLE, WriteResult({ "nRemoved" : 1 })