2014-12-15 5 views
5

kullanarak db Mongo'da döndü. Sonra Sonra konsolu için çıkışım Kişi modeli (on find() çağırarak On my düğüm appişlemek için veriler nasıl ben</p> <p>O 'basit' ve toplama adında bir db seçti 'insanları' (bu <a href="https://egghead.io/lessons/nodejs-first-api-with-node-js-express-and-mongodb">tutorial</a> aslında kullanarak) mongo kullanarak yerel bir veritabanı oluşturduk mongoose

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

yılında şema ve Kişi modeli oluşturmak

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

olarak her öğe ile json içe. - log (doc [0])) doc ilk öğe döndürdü:

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

Ama sorun olduğunu ben doküman üzerinde mülkiyet firstName ararken [0] (yani doc [0] .firstName) Tanımlanmamış bir şey buldum.

bu ve Object.keys (doc [0]) bana verir teşhis denedim: Sana gelen verilere erişmek istediğinizde firavunfaresi için bazı özel yöntemler olmalıdır şüpheli anlamı

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

senin Öğeleri döndürdü - ancak cevabı dokümantasyonda veya burada bulamıyorum.

Teşekkürler

cevap

1

sadece özgürce manipüle edebilir belgelerin JavaScript temsili, senin Gelincik sorgu zincirine lean() eklemek bölümü düz istediğinizde:

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

Kullanım .lean() Sorgunuzda aşağıda .

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