Mongodb remove需要在src/mongo/shell/collection.js处进行查询

Mongodb remove需要在src/mongo/shell/collection.js处进行查询,mongodb,Mongodb,运行db.messages.remove()时出现此错误。“remove需要在src/mongo/shell/collection.js上进行查询”。有没有解决此错误的建议?正如消息所说,您需要提供一个查询,但它可以是空的(如果您想删除所有文档): 编辑:我想强调以下人的评论: 注意:如果您确实想要删除集合中的所有文档,那么执行一个操作会更快。remove()操作将单独删除文档,并在删除文档时更新索引;drop()将立即删除集合的所有文档和索引 如果试图删除集合消息,则需要执行db.messag

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

正如消息所说,您需要提供一个查询,但它可以是空的(如果您想删除所有文档):

编辑:我想强调以下人的评论:


注意:如果您确实想要删除集合中的所有文档,那么执行一个操作会更快。
remove()
操作将单独删除文档,并在删除文档时更新索引;
drop()
将立即删除集合的所有文档和索引


如果试图删除集合
消息
,则需要执行
db.messages.drop()

否则,命令
db.messages.remove()
用于删除特定文档,因此您需要编写一个查询,让MongoDB引擎知道需要删除哪个文档。对于ex.db.messages.remove({u id:})

缺少{{u id:}导致错误,
remove需要查询…

运行:

db.collectionname.remove({})

结果:

WriteResult({ "nRemoved" : 7 })

从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 })

注意:如果您确实想要删除集合中的所有文档,那么执行一个操作会更快。
remove()
操作将单独删除文档,并在删除文档时更新索引;
drop()
将立即删除集合的所有文档和索引。我想知道为什么它们不将任何参数标记为有效,而不给出消息。
{}
真的有什么意义吗?@MurWade在MongoDB Linux中就是你说的那样。不在必须提供参数的窗口中。真的不知道为什么这段代码可能会回答这个问题,提供关于如何和/或为什么解决问题的额外上下文将提高答案的长期价值。
CollectionName: Document_CODE, WriteResult({ "nRemoved" : 20 })
CollectionName: Document_DATA, WriteResult({ "nRemoved" : 10 })
CollectionName: Document_NAME, WriteResult({ "nRemoved" : 10 })
CollectionName: Document_COLLE, WriteResult({ "nRemoved" : 1 })