gpt4 book ai didi

javascript - MongoDB shell : How to remove specific elements in all the collections inside a DB

转载 作者:行者123 更新时间:2023-11-28 13:20:20 26 4
gpt4 key购买 nike

我想删除所有集合中与正则表达式表达式的所有重合。

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

我可以手动完成,但我有超过 100 多个集合,并且手动输入 mongo shell db["X"].remove({ "DateTime": { $regex : "2015-11-16" } })每次收集都会花费相当多的时间。

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

最佳答案

use yourDbName

// Get the names of all collections in the database.
var names = db.getCollectionNames();

// Iterate over every collection name.
for(i = 0; i < names.length; i++) {

// Only issue the query if the collection is not a system collection.
if(!names[i].startsWith("system.")) {

// Issue the query against the collection with the name `names[i]`.
db[names[i]].remove({ "DateTime": { $regex : "2015-11-16" } });
}
}

请注意,我排除了 system collections从列表中。

关于javascript - MongoDB shell : How to remove specific elements in all the collections inside a DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33733887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com