mongodb中没有定义集合

时间:2016-09-16 12:31:55

标签: node.js mongodb express

我正在尝试从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);
  });
}

2 个答案:

答案 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'});

请参阅以下链接了解更多详情。

mongod db collection using nodejs