Неопределенный результат в MongoDB и Node js - PullRequest
1 голос
/ 06 мая 2020

Я хочу получить данные моей коллекции, моя коллекция называется students и является частью моей pool базы данных.

Соединение с mongoDB работает, однако console.log(result.lastname) возвращает undefined.

Вот мой server.js файл

var mongo = require('mongodb');
var assert = require('assert');
const url = 'mongodb://localhost:27017/';

mongo.connect(url, function (err, db) {

     if(err) {
         console.log("Connection failed");
    }
    console.log("Connection successfull");

    var dbo = db.db("pool");

    dbo.collection("students").find({}, function(err, result) {
        if (err) throw err;
        console.log(result.lastname);
        db.close();
      });

});

И содержимое моей students коллекции, которое я вижу, используя db.students.find(); непосредственно в консоли

{ "_id" : ObjectId("5eb1570f2c0167c90cc127fd"), "id" : 0, "lastname" : "Sam", "firstname" : "Sung", "email" : "sc@mail.com", "phone" : 613295990, "validated" : "Validated", "admin" : true }

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

По этой ссылке:
https://docs.mongodb.com/manual/reference/method/db.collection.find/

.find() возвращает список, а не только одну запись. Это означает, что даже если в вашей коллекции есть одна запись, она будет получена как список с одной записью. Вы должны повторить. Итак, попробуйте следующее:

var mongo = require('mongodb');
var assert = require('assert');
const url = 'mongodb://localhost:27017/';

mongo.connect(url, function (err, db) {

     if(err) {
         console.log("Connection failed");
    }
    console.log("Connection successfull");

    var dbo = db.db("pool");

    dbo.collection("students").find({}, function(err, result).toArray(function(err, result) {
        if (err) throw err;
        console.log(result.lastname);
        db.close();
      });

});

Еще одна полезная ссылка: https://www.w3schools.com/nodejs/nodejs_mongodb_find.asp

0 голосов
/ 06 мая 2020

Я думаю, он возвращает массив, вы можете попробовать:

result[0].lastname
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...