[英]How to manipulate data returned from mongo db using mongoose
我使用mongo創建了一個本地數據庫(實際使用本教程 )
它有一個名為'simple'的數據庫和名為'people'的集合。 然后我用每個元素導入json
{
"id": 1,
"guid": "1581cfde-f2fc-44f8-8953-511331e943ab",
"isActive": true,
"firstName": "Ilene",
"lastName": "Kent",
"email": "carolegoodman@intrawear.com"
}
然后,我在節點應用程序中創建架構和Person模型
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);
});
});
在Person模型上調用find()時,我得到了記錄(對於console.log(doc [0])) - 返回的doc中的第一項:
{ _id: 548e41afa0bad91d53f34cce,
id: 0,
guid: 'af6a931d-1801-4662-9d52-c95dc97bac22',
isActive: false,
firstName: 'Janna',
lastName: 'Shelton',
email: 'crossoconnor@geekology.com' }
但我的問題是,當我在doc [0](即doc [0] .firstName)上查找屬性firstName時,我得到一個未定義的。
我已經嘗試過診斷這個,而Object.keys(doc [0])給了我:
[ '$__',
'isNew',
'errors',
'_maxListeners',
'_doc',
'_pres',
'_posts',
'save',
'_events' ]
我懷疑當你想要從你返回的元素中訪問數據時,必須有一些特殊的mongoose方法 - 但我在文檔或這里找不到答案。
謝謝
您收到一系列文檔。 Mongoose API
doc[0].get('firstName')
當您只想要一個可以自由操作的文檔的簡單JavaScript表示時,將lean()
添加到您的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);
});
});
在查詢中使用.lean(),如下所示。
db.collection.find().lean().then(function(data){})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.