删除需要src / mongo / shell / collection.js的查询

时间:2014-08-03 11:13:11

标签: mongodb

运行db.messages.remove()时出现此错误。 “删除需要在src / mongo / shell / collection.js上查询”。有任何解决此错误的建议吗?

4 个答案:

答案 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 })