一尘不染

无法访问猫鼬响应的对象属性

node.js

我在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})

我该如何实现?我想念什么?


阅读 548

收藏
2020-07-07

共1个答案

一尘不染

我怀疑您要获取的值不在您的中,Schema而是存储在数据库中。

您有两种解决方案。您可以将其添加entity_id到您的Schema文档中,然后Mongo可以将其绑定到Document您收到的对象。这是推荐的方法。

或者,您可以绕过猫鼬,Schema并使用访问存储在数据库中的原始文档docs[0]._doc.entity_id。除非您知道自己在做什么,否则我不建议您使用此解决方案。

2020-07-07