填充字段,该字段是单个查询中嵌入数组的属性
Populating a field which is a property of an embedded array in a single query
我正在使用Mongoose&Nodejs。
我有一个ForumPost对象的集合,它有一个属性"comments",这是一个包含引用属性"author"的猫鼬模式,它引用了一个User模型。我在为"comments"数组中的每个项填充"author"属性时遇到了问题。
以下是ForumPost对象定义:
var ForumPost = db.model("ForumPost", {
author: { type: Schema.Types.ObjectId, ref: "User", required: true, default: null, select: true},
comments: [new db.Schema({
author: { type: Schema.Types.ObjectId, ref: "User" },
comment: { type: String, default: ""},
})]
});
当我从数据库中提取这些内容时,我会填充论坛帖子的"作者"字段,这很好,因为这是一个基本的填充操作。
今天早上,我一直试图填充评论数组的"作者"字段,但没有成功,我的最新尝试发布在下面。
我使用以下查询:
ForumPost.findOne({alliance_id: alliance._id, _id: post_id})
.populate("author")
.populate({
path: 'comments',
populate: {
path: 'comments.author',
model: 'User'
}
})
.select("comments")
.exec(function(error, post) {
return res.json(post);
});
这是否可以在单个查询中填充ForumPost注释数组中对象的"作者"字段?
因为您没有执行任何嵌套填充,所以您可以在单个populate
调用中包括这两个路径:
ForumPost.findOne({alliance_id: alliance._id, _id: post_id})
.populate('author comments.author')
.select('author comments')
.exec(function(error, post) {
return res.json(post);
});
相关文章:
- 添加和删除隐藏字段数组中的值,而不提交表单
- Javascript 将 int 值转换为八位字节流数组
- 我如何让我的 var 错误消息输出是使用字段还是字段,具体取决于留空的字段数
- 如何在字段数组中更新
- 在MongoDB中,从文档中获取单个字段数组的最简单方法是什么
- 具有相同名称和不同 id 的选择字段数组
- 流星自动体形 - 禁用对象字段数组中的选择选项
- 克隆的输入字段数组的唯一 ID 值
- 如何根据输入字段数组验证禁用提交按钮
- 如何通过输入字段数组编辑成分
- 如何具有带名称的字段数组
- 如何从json字段数组动态创建一个没有jquery的表单
- 如何获取隐藏字段数组值
- 引用到另一个类的数组字段数组字段没有't刷新
- 如何从JSON文档数组中提取字段数组
- Javascript获取包含数组键的字段数组的长度
- 根据字段数组大小对文档进行分组和删除文档
- 按匹配的对象字段数对对象数组进行排序
- AngularJS过滤记录中对应字段(数组)的值
- 如何从字段数组中获取字段名