2014-12-15 22 views
5

I utworzeniu lokalnej bazy danych za pomocą Mongo (używając tych tutorial faktycznie)jak manipulować dane zwrócone z Mongo db używając mongoose

Ma db nazwie „proste” i kolekcja o nazwie „Ludzie”. Potem import json z każdego elementu jako

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

I następnie utworzyć schemat i model osoba w moim węzła aplikacji

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

o zwołaniu find() na modelu osoby, którą się zalogowanych (na konsoli. log (doc [0])) - pierwsza pozycja w doc powrócił:

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

Ale moim problemem jest to, że kiedy patrzę na FIRSTNAME nieruchomości na doc [0] (tzn doc [0] .firstName) Mam niezdefiniowane.

Próbowałem diagnozowania tego i Object.keys (doc [0]) daje mi:

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

oznacza Podejrzewam, że musi być jakieś specjalne metody mangusta, gdy chcesz uzyskać dostęp do danych z Twojego zwróciło elementy - ale nie mogę znaleźć odpowiedzi w dokumentacji lub tutaj.

Dzięki

Odpowiedz

1

Gdy chcesz po prostu zwykły JavaScript przedstawienie dokumentów, które można dowolnie manipulować, aby dodać lean() łańcucha zapytania Mongoose:

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

Zastosowanie .lean() w zapytaniu jak poniżej .

db.collection.find().lean().then(function(data){})