我尝试将集合从第一个数据库复制到第二个数据库,具有文档的集合从第一个数据库复制到第二个数据库,但没有文档的集合不会被复制。当我尝试使用空文档创建新集合时,使用包含id字段的一个文档创建集合。但我的要求是使用mongoose在mongodb中创建没有任何文档的集合。如何使用mongoose库和node.js在MongoDb中创建空集合。这里是代码
var data = db.model('name', 'mymodel',"collectionName"),
newCollection = new data({});
newCollection .save(function (err) {});
答案 0 :(得分:0)
您可以使用本机MongoDb驱动程序创建一个空集合。
var MongoClient = require('mongodb')。MongoClient;
MongoClient.connect('mongodb://localhost:27017/dbName', function(err, db) {
db.createCollection(collectionName, function(err, collection) {
db.close();
})
})
现在您可以更进一步,检查集合是否存在。如果它确实跳过创建或者创建一个。
MongoClient.connect('mongodb://localhost:27017/dbName', function(err, db) {
db.listCollections().toArray(function(err, collections) {
var collectionExists = false;
console.log(JSON.stringify(err,null,1));
if(!err && collections && collections.length>0){
_.each(collections,function (co) {
console.log(JSON.stringify(co.name,null,1));
if(co.name == collectionName){
collectionExists = true;
}
})
}
if(!collectionExists){
db.createCollection(collectionName, function(err, collection) {
})
}
db.close();
});
})
参考文献: