我在 node.js 上运行这段代码
var mongoose = require('mongoose');
mongoose.model('participant',new mongoose.Schema({},{ collection : 'forumParticipant' }));
var Participant = mongoose.model('participant');
mongoose.connect('******');
Participant.find({entity_id: 0}, function (err, docs) {
console.log(docs[0]);
console.log(docs[0].entity_id)
});
1) 第一个console.log 返回完整文档
2) 第二个console.log返回未定义
我不明白为什么。
我需要执行类似的操作
var participants = docs.map(function(d){return d.user_id})
我怎样才能做到这一点?我错过了什么?
最佳答案
我怀疑您尝试获取的值不在您的 Schema
中,而是存储在您的数据库中。
您有两个解决方案。您可以将 entity_id
添加到您的 Schema
中,Mongo 将能够将其绑定(bind)到您收到的 Document
对象。这是推荐的方式。
或者您可以绕过 Mongoose Schema
并使用 docs[0]._doc.entity_id
访问存储在数据库中的原始文档。除非您知道自己在做什么,否则我不推荐此解决方案。
关于node.js - 无法访问 Mongoose 响应的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32633561/