我是Mongo的新手,似乎在解决一些基本的工作方面遇到了问题。
带注释的代码如下。缺点是db.getCollectionNames
未定义,db.foo.find()
以及db.foos.find()
两者炸弹,即使代码中列出了foo集合实际上确实有效。
我的mongo安装是否缺少某些功能或什么?
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/mongotest', function(err, db){
try {
db.collections(function(e, cols) {
cols.forEach(function(col) {
console.log(col.collectionName); //WORKS just fine
});
});
console.log(typeof db.getCollectionNames); //undefined
//db.foos.find(); //[TypeError: Cannot call method 'find' of undefined]
//db.foo.find(); //[TypeError: Cannot call method 'find' of undefined]
} catch (ex) {
console.log(ex);
} finally {
setTimeout(function(){ db.close(); }, 2000);
}
});
答案 0 :(得分:0)
看起来您可能正在查看Mongo shell文档或旧版本的node.js本机驱动程序API。
在当前的2.x version驱动程序中,getCollectionNames
被listCollections
替换。
关于db.foo.find()
语法,据我所知,本机驱动程序从未支持过这种语法。相反,那将是:
db.collection('foo').find()