[英]Mongoose conditional populate with findById()
僅當目標模型包含某個屬性時,我才嘗試填充字段。 下面,我只想在 Book 的gift
屬性設置為 false 時填充 Book 的product
,但它似乎不起作用:
//Schema
const bookSchema = new mongoose.Schema({
gift: { type: Boolean, default: false },
date: { type: Date, default: Date.now },
author: { type: [authorSchema] },
product: { type: [productSchema] }
}
// Conditional Populate
result = await Book
.findById(bookID)
.populate("author", "name")
.populate("product", "price", { gift: false } )
[編輯] :
正如 Vinícius Belló 所建議的,填充現有文檔是有效的。
// Conditional Populate
const result = await Book
.findById(bookID)
.populate("author", "name");
if (!result.gift) {
await result
.populate("product", "price")
.execPopulate();
}
您可以在不填充產品的情況下接收結果,然后在禮品為假時填充結果變量。 我建議您閱讀 mongoose 文檔https://mongoosejs.com/docs/populate.html#populate_an_existing_mongoose_document 的這一部分。 如果這對您有幫助,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.