一个列表可能有很多项目。我可以轻松地从列表中检索所有项目,但是在执行相反操作时遇到了问题,即检索包含项目的所有列表
ItemSchema:
const ItemSchema = mongoose.Schema({
name: { type: String, required: true, min: 1 },
created_at: { type: Date, default: Date.now }
},{ toJSON: { virtuals: true }});
ListSchema:
const ListSchema = mongoose.Schema({
title: { type: String, required: true, max: 100 },
user: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
description: { type: String, required: true },
items: [{
type: mongoose.Schema.Types.Mixed, ref: 'Item', quantity: 'String'
}],
completed: { type: Boolean, default: false },
date: { type: Date, default: Date.now },
});
文档:
"items": [
{
"_id": "5c6d74a98a3f532b4c1d2a23",
"quantity": "7"
}
],
我如何填充:Item.findById(id).populate('lists');
,但它返回空数组。
有什么建议吗?
答案 0 :(得分:0)
我有更改,请检查并让我填写list
是什么
Item.findById(id).populate('quantity')
或者您可以使用
const product = await Item.findOne({_id: id}).populate('quantity');
console.log("populate result...",product.quantity)
答案 1 :(得分:0)
很长一段时间都没有使用过MongoDB,但是似乎您的Item Schema中没有“ lists”键可以首先填充。也许您应该添加一个或查询包含该项目的列表。