【发布时间】:2019-01-21 08:53:34
【问题描述】:
我想访问我的模型中文档数组的内容,但我不能并返回未定义。
这是我的模型(Project.js):
var mongoose = require('moongoose');
var Schema = mongoose.Schema;
var User = require("./Users");
var ProjectSchema = new Schema({
name: String,
description: String,
owner: {
type: mongoose.SchemaTypes.ObjectId,
ref: "User"
},
contributor: [{
type: mongoose.SchemaTypes.ObjectId,
ref: "User"
}]
});
module.exports = mongoose.model('Project', ProjectSchema);
和我的 Api:
var Project = require('./Project')
await Project.find({owner: userId, name: name})
.then(project => {
console.log(project);
console.log(project.contributor);
}).catch(err => {
res.status(500).send({
message: err.message
});
});
当我尝试 console.log(project); 返回预期输出但在 console.log(project.contributor); 返回 undefined
我也搜索了网络,但找不到任何正确且明确的解决方案
感谢您的帮助:)
【问题讨论】:
-
请显示console.log(project)的输出
-
project.contributor 是一个包含一个对象的数组,因此即使数组中只有一个对象,你也需要阻止你想要的一个,所以试试 console.log(project.contributor[0] )
-
project是一个数组,而不是一个对象。因此你必须使用project[0].contributor。
标签: javascript node.js mongodb express mongoose