我想检查 Node.js 中是否存在一个集合。我使用 db.collectionNames 获取数据库中的名称列表,但没有任何反应。代码:
connectDB(DBURL).then(function(db) {
console.log('db connect ok');
db.collectionNames('test', function(err, collectionNames) {
console.log('get collection names');
if(err) console.log(err);
else console.log(collectionNames);
});
}, function(err) {
console.log(err);
});
connectDB(DBURL)
是一个 promise 对象,它工作得很好。输出:
app-0 try to connect db
app-0 db connect ok
您可以看到 collectionNames
中的函数没有任何输出。我不知道为什么。
我可以通过 db.getCollectionNames
在 Mongo shell 中获取集合名称:
> db.getCollectionNames()
[ "system.indexes", "test" ]
最佳答案
您使用的是 >2.0 版本的驱动程序吗?
如果是这样,您将需要使用 listCollections instead - 这是 1.x 更新中的变化之一
类似于:
db.listCollections().toArray(function(err, collections){
//collections = [{"name": "coll1"}, {"name": "coll2"}]
});
关于node.js - db.collectionNames 在 Node.js 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33214175/