不能填充猫鼬

时间:2021-03-15 14:38:21

标签: mongodb mongoose mongoose-populate

我按照 this 文档填充对象。

// in model.ts I defined this schema
const parentSchema = new mongoose.Schema({
... // more properties
someSettings: { type: mongoose.Schema.Types.ObjectId, ref: 'some'} // in model.ts
});

// in nested-model.ts I defined this model the parent is referring to 
export const ChildModel = mongoose.model<ISomeSettings>('some', SomeSchema); // in  nested-model.ts

在保存文档时,我执行以下操作:

const parent = new parentModel(data);
const child = new childModel(childSettings)
parent.someSettings = child._id;

这按预期工作并创建了两个集合(父集合和子集合),并将子集合的 id 保存在父集合的属性“someSettings”中。

现在当我想得到两个组合的对象时,我这样做:

const parent = await parentModel.findOne({ someId: id }).exec()

if (parent !== null) {
 const fullObject = await parent.populate('someSettings').execPopulate()
}
return fullObject;

问题是,作为“someSettings”,我只能从 childObject 中获取 id(这是正确的),而不是从子对象中获取实际属性。

感谢任何帮助!

0 个答案:

没有答案