我正在尝试从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
谢谢
答案 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文件读取到集合中。