Javascript MongoDB shell:如何删除数据库中所有集合中的特定元素

Javascript MongoDB shell:如何删除数据库中所有集合中的特定元素,javascript,mongodb,mongodb-query,mongodb-shell,Javascript,Mongodb,Mongodb Query,Mongodb Shell,我想删除所有集合中与正则表达式一致的地方 我需要这个,因为JSON解析器今天在我的应用程序中的某个点失败了,现在数据库已经损坏了 我可以手动完成,但我有超过100个集合,并且手动输入MongoShell db[“X”].remove({“DateTime”:{$regex:“2015-11-16”})对于每个集合都需要相当多的时间 您知道在mongo shell中自动执行此操作的方法吗?我总是通过R中的包RMongo访问这个数据库,我可以通过dbRemoveQuery(RMongo.object

我想删除所有集合中与正则表达式一致的地方

我需要这个,因为JSON解析器今天在我的应用程序中的某个点失败了,现在数据库已经损坏了

我可以手动完成,但我有超过100个集合,并且手动输入MongoShell
db[“X”].remove({“DateTime”:{$regex:“2015-11-16”})
对于每个集合都需要相当多的时间

您知道在mongo shell中自动执行此操作的方法吗?我总是通过R中的包
RMongo
访问这个数据库,我可以通过
dbRemoveQuery(RMongo.object,collection,query)
来访问它,但我想知道是否可以在mongo shell中完成,也许可以快一点。

使用您的数据库名
//获取数据库中所有集合的名称。
var name=db.getCollectionNames();
//迭代每个集合名称。
对于(i=0;i
请注意,我被排除在列表之外。

使用yourDbName
//获取数据库中所有集合的名称。
var name=db.getCollectionNames();
//迭代每个集合名称。
对于(i=0;i
请注意,我被排除在列表之外。

在mongo shell中:

db.getCollectionNames().forEach(函数(名称){
db[name].remove({“DateTime”:{$regex:“2015-11-16”});
})
在mongo shell中:

db.getCollectionNames().forEach(函数(名称){
db[name].remove({“DateTime”:{$regex:“2015-11-16”});
})
好的
.startsWith()
是一项新技术,是ECMAScript 2015(ES6)标准的一部分,因此它可能无法在Mongo Shell中工作

您将需要使用该方法放弃系统集合

var collections = db.getCollectionNames().filter(function(collection) {
    return collection.indexOf('system.') !== -1;
};
然后在此处删除符合您标准的文档,其中
“DateTime”:“2015-11-16”

for(var index=0;index
好的
.startsWith()
是一项新技术,是ECMAScript 2015(ES6)标准的一部分,因此它可能无法在Mongo Shell中工作

您将需要使用该方法放弃系统集合

var collections = db.getCollectionNames().filter(function(collection) {
    return collection.indexOf('system.') !== -1;
};
然后在此处删除符合您标准的文档,其中
“DateTime”:“2015-11-16”

for(var index=0;index
谢谢你的努力,但是(不知道为什么)没有很好地执行。@Sergio我已经解决了这个问题。现在它也可以工作了。谢谢,但它没有丢失的问题。
,我在它失败后放了它,但在那之后,我检查了集合,文档仍然在那里。@Sergio关闭
不是我唯一修复的;-)我还将
name
参数添加到回调函数中,并像这样使用它:
db[name]
。感谢您的努力,但是(不知道为什么)没有很好地执行。@Sergio我已经修复了这个答案。现在它也可以工作了。谢谢,但它没有丢失的问题。
),我在它失败后放了它,但在那之后,我检查了集合,文档仍然在那里。@Sergio关闭
不是我唯一修复的;-)我还向回调函数添加了
name
参数,并像这样使用它:
db[name]