您能帮我吗,我正在尝试将特定数据库中的所有集合复制到新数据库中,然后将该集合移入其中。但是以下代码不起作用。和我在数据库中的大学名称包含两部分'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和集合名称数据db名称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); });
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句