2016-09-16 5 views
-5

Я пытаюсь получить результаты из коллекции MongoDB, но когда я вызвать функцию через маршруты говорится сбор ошибок не определен, может ли один предложить мне помочь,сбор не определен в 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

Вы не определили коллекцию над файлом, но все еще хотите получить доступ к этому – abdulbarik

+0

Я думаю, что это должно быть 'db.collection.find ...'. Конечно, это должно быть настоящее имя коллекции. –

+0

Sergio, с добавлением db.collection.find, он говорит, что db не найден – MMR

ответ

1

Здесь вы не объявили переменную (collection), так что только вы получили эту ошибку. Вам нужно объявить эту переменную с правильным именем коллекции.

Для примера: Если вы собираетесь найти записи в пользователях коллекции под тестом схемы вам нужно следование код ниже.

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); 
    }); 
} 

Примечание: вам нужно несколько записей в коллекции пользователей тестируемой схемы.

+0

Selva kumar, с вашим кодом я получаю ошибку, db не определен – MMR

+0

Извините, что я отредактирую свой код. Попробуйте это –

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

Смежные вопросы