我有这些集合(books
,book_genres
,genres
,books
)我的book
Schema
是这样的
var bookModel = function () {
var bookSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
author_id: {
type: mongoose.Schema.Types.ObjectId,
ref: "Author",
},
title: String,
description: String,
cover: String,
likes: Number,
});
return mongoose.model("Book", bookSchema);
};
module.exports = new bookModel();
我使用dust
模板,并在布局上呈现该集合数据
{#books}
<div class="large-4 small-12 columns book">
<div class="row img-row">
<img src="{.cover}" alt="">
</div>
<div class="row">
<h3 class="small-12">{.title}</h3>
<h4 class="small-5 columns ">{.author_id}</h4>
<h4 class="small-7 columns ">{.name}</h4>
</div>
<div class="row p-row">
<p class="small-12">{.description}</p>
</div>
</div>
{/books}
我的author
Schema
是这样的
var authorModel = function () {
var authorSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
name: String,
});
return mongoose.model("Author", authorSchema);
};
我希望能够访问author
name
,以便通过从book
Schema
获得的author_id
在我的布局上渲染它(确保authors集合中的id
与books
集合中的author_id
相同)
我试图搜索一些解决方案,但没有人使用dust
模板,所以我无法找到答案
1条答案
按热度按时间j0pj023g1#
您可以使用
populate
来解析Author
指涉:然后,您应该能够使用以下命令访问引用的用户字段:
在您的情况下,应该将代码更改为: