问题描述
对于可能需要阅读的大量信息,首先道歉。
我试图使其简洁和相关。
我有三个收藏集-RawMaterial,BasicRecipe和Recipe。
数据流:基本配方是原材料的组合,而配方则是原材料和基本配方的组合。我正在突出显示我使用参考模型的部分模型。
基本食谱模型:
details: [
{
quantityInRecipe: {
type: Number
},costOfRawMaterial: {
type: Number,default: 0
},rawmaterialdetails: {
type: mongoose.Schema.ObjectId,ref: 'RawMaterial'
}
}
],
食谱模型:
rawMaterialDetails: [
{
quantityInRecipe: {
type: Number
},details: {
type: mongoose.Schema.ObjectId,basicRecipeDetails: [
{
details: {
type: mongoose.Schema.ObjectId,ref: 'BasicRecipe'
},unitInRecipe: {
type: Number
}
}
]
在向客户端发送数据时,我需要填充3件东西。
- 食谱中的rawMaterialDetails
- 食谱中的basicRecipe详细信息
- 基本食谱中的rawMaterialDetails
exports.getAllRecipies = factory.getRecipe(
Recipe,'rawMaterialDetails.details','basicRecipeDetails.details','basicRecipeDetails.details.details.rawmaterialdetails'
);
exports.getRecipe = (Model,popOption1,popOption2,popOption3) =>
catchAsync(async (req,res,next) => {
//console.log(Model);
let filter = {};
let selectFields = {};
let features = Model.find(filter);
if (popOption1)
features = Model.find(filter)
.populate(popOption1)
.populate(popOption2)
.populate(popOption3);
// const doc = await features.query.explain();
const doc = await features;
// SEND RESPONSE
res.status(200).json({
status: 'success',results: doc.length,data: {
data: doc
}
});
});
通过此操作,我可以填充rawMaterialDetails和basicRecipeDetails。
我需要帮助来填充basicRecipeDetails中的rawMaterialsDetails。
这是我得到的结果的快照:
"basicRecipeDetails": [
{
"_id": "5f59fc6c10d428e2b16eae1c","details": {
"brandName": "Piatto","_id": "5f58fd4574902c702a494200","name": "New Immer Macaron Shell","details": [
{
"costOfRawMaterial": 39.6,"_id": "5f36cd45875da6156c9a0787","quantityInRecipe": 330,"rawmaterialdetails": "5f36cd45875da6156c9a0787"
},{
"costOfRawMaterial": 412.5,"_id": "5f36cdfc875da6156c9a078f","rawmaterialdetails": "5f36cdfc875da6156c9a078f"
},{
"costOfRawMaterial": 7.26,"_id": "5f397abb59ad0ba71f27fa93","quantityInRecipe": 121,"rawmaterialdetails": "5f397abb59ad0ba71f27fa93"
},{
"costOfRawMaterial": 31.44,"_id": "5f397adb59ad0ba71f27fa94","quantityInRecipe": 131,"rawmaterialdetails": "5f397adb59ad0ba71f27fa94"
}
],"baseQuantity": 912,"baseUnit": "gm","rate": 491,"recipeUrl": "","yieldBasicRecipe": 900,"unitPerBaseQuantity": 7,"costPerUnit": 70.14285714285714,"weightPerUnit": 130.28571428571428,"__v": 0
},"unitInRecipe": 2
}]
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)