在mongodb – nodejs中获取集合的键/列
我正在尝试使用以下代码获取集合的所有列/键:
var Db = require('mongodb').Db; //for mongodb var Connection = require('mongodb').Connection; var Server = require('mongodb').Server; var BSON = require('mongodb').Server; var ObjectID = require('mongodb').ObjectID; DbModels = function(host, port){ this.db = new Db('test', new Server(host, port,{auto_reconnect:true},{})); this.db.open(function(){}); }; DbModels.prototype.testDb=function(_collection){ console.log("Collection:"); console.log(this.db.collection('persons').find()); var mr = this.db.runCommand({ "mapreduce":"br_205_results", "map" : function(){ for (var key in this){emit(key, null);} }, "reduce" : function(key, stuff){ return null; } }); console.log(mr); db[mr.result].distinct("_id"); };
但是我得到以下错误:
TypeError: Object [object Object] has no method 'runCommand' at [object Object].testDb (c:\Program Files\nodejs\DbModels.js:17:22) at c:\Program Files\nodejs\socketio.js:164:14 at callbacks (c:\Program Files\nodejs\node_modules\express\lib\router\index.js:272:11) at param (c:\Program Files\nodejs\node_modules\express\lib\router\index.js:246:11) at pass (c:\Program Files\nodejs\node_modules\express\lib\router\index.js:253:5) at Router._dispatch (c:\Program Files\nodejs\node_modules\express\lib\router\index.js:280:4) at Object.handle (c:\Program Files\nodejs\node_modules\express\lib\router\index.js:45:10) at next (c:\Program Files\nodejs\node_modules\connect\lib\http.js:203:15) at Object.handle (c:\Program Files\nodejs\node_modules\now\lib\now.js:213:7) at next (c:\Program Files\nodejs\node_modules\connect\lib\http.js:203:15)
任何想法,我怎么能解决这个问题?
问题是你正在使用的MongoDB驱动程序( mongodb-native )没有实现在Mongo控制台中find的接口。 这就是为什么你用runCommand
看到这个错误。 你有两个select:
- 切换到蒙古DeadBeef (坏名字,我知道)。
- 尝试命令executeDbCommand 。
祝你好运!
- node.js – 不能让mongodb工作,可能安装错了?
- findAndModify或findOneAndUpdate – “不是一个函数”
- 在Express路由器中使用mongoDB
- Mongoose查询来查找多个数组中的匹配元素
- Node.js从MongoDB获取请求返回undefined
- nodejs mongoDB findOneAndUpdate(); 即使在数据库更新后也会返回true
- 将MongoDB / ExpressJS查询存储到数组中并显示到HTML表中
- Mongoose(express,node,mongo)范围问题findOne()
- 连接到MMS副本集时发生Mongo身份validation错误