2014-12-15 21 views
5

tôi đã tạo ra một cơ sở dữ liệu địa phương sử dụng Mongo (sử dụng này tutorial thực tế)Làm thế nào để thao tác dữ liệu trả về từ Mongo db sử dụng mongoose

Nó đã một db có tên là 'đơn giản' và bộ sưu tập có tên là 'người'. Sau đó, tôi nhập json với mỗi yếu tố như

{ 
    "id": 1, 
    "guid": "1581cfde-f2fc-44f8-8953-511331e943ab", 
    "isActive": true, 
    "firstName": "Ilene", 
    "lastName": "Kent", 
    "email": "[email protected]" 
    } 

sau đó tôi có thể tạo giản đồ và mô hình Người trong ứng dụng nút của tôi

var express = require('express'); 
var path = require('path'); 
var mongoose = require('mongoose'); 

var app = express(); 

app.set('port', (process.env.PORT || 5000)); 

mongoose.connect('mongodb://localhost/simple') 

var personSchema = { 
    firstname: String, 
    lastname: String, 
    email: String 
} 

var Person = mongoose.model('Person', personSchema, 'people') 

app.get('/users', function(req,res){ 
    Person.find(function(err, doc){ 
    var x = doc[0] 
    console.log(x) 
    console.log(Object.keys(x)) 
    res.send(200); 
    }); 
}); 

On gọi find() trên mô hình Person tôi thường xuyên bị thoát (cho giao diện điều khiển. log (doc [0])) - mục đầu tiên trong doc trả về:

{ _id: 548e41afa0bad91d53f34cce, 
    id: 0, 
    guid: 'af6a931d-1801-4662-9d52-c95dc97bac22', 
    isActive: false, 
    firstName: 'Janna', 
    lastName: 'Shelton', 
    email: '[email protected]' } 

Nhưng vấn đề của tôi là khi tôi tìm kiếm các tài sản trên firstName doc [0] (ví dụ: doc [0] .firstName) Tôi nhận được một không xác định.

Tôi đã thử chẩn đoán này và Object.keys (doc [0]) mang lại cho tôi:

[ '$__', 
    'isNew', 
    'errors', 
    '_maxListeners', 
    '_doc', 
    '_pres', 
    '_posts', 
    'save', 
    '_events' ] 

có nghĩa là tôi nghi ngờ thì phải có một số phương pháp đặc biệt cho cầy mangut khi bạn muốn truy cập dữ liệu từ bạn các phần tử trả về - nhưng tôi không thể tìm thấy câu trả lời trong tài liệu hoặc ở đây.

Cảm ơn

Trả lời

1

Khi bạn chỉ muốn một đồng bằng JavaScript đại diện của các tài liệu mà bạn có thể thoải mái thao tác, thêm lean() để chuỗi truy vấn Mongoose của bạn:

app.get('/users', function(req,res){ 
    Person.find().lean().exec(function(err, docs){ 
    var x = docs[0] 
    console.log(x) 
    console.log(Object.keys(x)) 
    res.send(200); 
    }); 
}); 
0

Sử dụng .lean() trong truy vấn của bạn như sau .

db.collection.find().lean().then(function(data){}) 
Các vấn đề liên quan