我正在尝试从mongodb集合中获取结果,但是当我通过路由调用该函数时,它表示错误集合未定义,任何人都可以建议我帮助,
var express = require('express');
var router = express.Router();
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";
MongoClient.connect(url, function(err, db) {
if(!err) {
console.log("We are connected");
}});
exports.getprofile = function (url,req, res) {
collection.find({}).toArray(function(err,res, docs) {
if(err){
res.send(err);
}else if(res.length){
console.log(res)
}
else{
console.log('no docs found');
}
res.send(res);
});
}
答案 0 :(得分:1)
这里你没有声明变量(集合),所以只有你得到这个错误。你需要用适当的集合名称声明该变量。
例如: 如果您要在测试架构下的用户集合中查找记录,则需要按照以下代码进行操作。
var express = require('express');
var router = express.Router();
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/test";
var collection = null;
MongoClient.connect(url, function(err, db) {
if(!err) {
console.log("We are connected");
collection = db.collection('users');
}});
exports.getprofile = function (url,req, res) {
collection.find({}).toArray(function(err,res, docs) {
if(err){
res.send(err);
}else if(res.length){
console.log(res)
}
else{
console.log('no docs found');
}
res.send(res);
});
}
注意 :您在测试架构下的用户集合中需要一些记录。
答案 1 :(得分:0)
您必须首先获取集合对象,如下所述
var collection = db.collection("simple_document_insert_collection_no_safe");
// Insert a single document
collection.insert({hello:'world_no_safe'});
请参阅以下链接了解更多详情。