MongoDB Atlas-从脚本创建数据库

时间:2020-04-04 16:35:16

标签: javascript mongodb

我正在尝试从mongodb中的脚本创建集合,我在此链接上发现了一个有用的脚本来完成Make a script to create MongoDB collections from Mongo shell?(感谢该脚本)。

我现在正在使用这种脚本,它可以正常工作:

db = db.getSiblingDB('emanueledb');
var collectionList = ["collection1", "collection2", "collection3"]
collectionList.forEach(function(collName) {
    db.createCollection(collName, {autoIndexId: true});
});

我正在尝试循环一些数据库,但是使用这种代码:

var dblist = ["emanueledb", "db_ema_dv"];
var collectionList = ["ab111", "bc111"];
dblist.forEach(function(dbname) { db.getSiblingDB(dbname)
        collectionList.forEach(function(collName) {
                db.createCollection(collName, {autoIndexId: true});
})
});

它可以工作,但仅在db_ema_dv上创建两个集合。怎么了?

是否还可以从外部csv获取collection和db以自动执行所有操作?

CSV示例:

dbname,collectionname
emanueledb,collection1
emanueledb,collection2
testdb,testcollection

谢谢

3 个答案:

答案 0 :(得分:0)

在您发布的代码中,该表达式不执行任何操作(它选择数据库,但对数据库不执行任何操作):

db.getSiblingDB(dbname)

尝试:

db.getSiblingDB(dbname).createCollection(collName, {autoIndexId: true});

答案 1 :(得分:0)

完美,谢谢!现在可以使用!

    var dblist = ["emanueledb", "db_ema_dv"];
var collectionList = ["ab111111", "bc111111"];
dblist.forEach(function(dbname) { 
        collectionList.forEach(function(collName) {
                db.getSiblingDB(dbname).createCollection(collName, {autoIndexId: true});
})
});

根据之前的要求,是否可以从csv获取数据库和收集?

CSV示例:

dblist,collectionList
emanueledb,collection1
emanueledb,collection2
testdb,testcollection

答案 2 :(得分:0)

要从.csv获取数据库,可以使用mongoimport命令。这会将CSV文件读取到集合中。