gpt4 book ai didi

mongodb - 将单个数据库中的所有集合转换为新的数据库

转载 作者:可可西里 更新时间:2023-11-01 09:36:27 26 4
gpt4 key购买 nike

你能帮帮我吗我正在尝试将特定数据库中的所有集合复制到创建新数据库并将该集合移入其中。但以下代码不起作用。我在数据库中的集合名称包含两部分“mg2.data”,“mg32.data”我想创建新数据库 mg2 并将集合名称复制为数据。集合名称 mg2.data 假设在 mg2 数据库和集合名称数据中。

db.getCollectionNames().forEach(function( a ){
if(a!='system.indexes' ) {
var sp = a.split('.');
var dbName = sp[0];
var col = sp[1];
//print(dbName)

db[a].copyTo(db.getSiblingDB(dbName).getcCollection(col));

}
});

这是我的详细情况。

我的 Db 名称为 Master,它包含大约 60-70 个集合,其名称类似于 (mg1.data,mg2.data,mg3.data)我希望它像数据库名称 mg1 和集合名称数据数据库名称 mg2 和集合名称数据等等..我面临的问题是,在第一次设计时,写入操作会锁定整个数据库(Master)。我现在不能进行分片。

最佳答案

我得到了适合我的方法。我不知道这是最好的方法

db.getCollectionNames().forEach(function( a ){
if(a!='system.indexes' ) {
var sp = a.split('.');
var dbName = sp[0];
var col = sp[1];
print(dbName+'\n');

//db[a].copyTo(db.getSiblingDB(dbName).getcCollection(col));
db[a].find().forEach(function(d){ db.getSiblingDB(dbName)[col].insert(d); });

}
});

关于mongodb - 将单个数据库中的所有集合转换为新的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25543118/

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