首页 > 解决方案 > 猫鼬填充嵌套对象内部

问题描述

我想在嵌套对象中使用 populate() 。填充似乎解决了一些问题,但它返回 [Object]。

我找到了很多关于 populate() 更复杂示例的答案,但我没有找到任何解决这个问题的方法。

这是我从查询中得到的:

 User: [{ 
            General: { Name: 'testUsername' },
            data: { car_ref: [Object] },
            _id: ...
          }]

这就是我想要的:

User: [{ 
        General: { Name: 'testUsername' },
        data: { car_ref: { Name: 'testCarname' } },
        _id: ...
      }]

在没有填充的情况下调用 find() 可以获得我的汽车文档的正确 _id。

 User: [{ 
            General: { Name: 'testUsername' },
            data: { car_ref: 5bfbe82402f3a8354892dbd7 },
            _id: ...
          }]

这是我对填充函数的调用:

 userModel
        .find()
        .populate({path:"data.car_ref"});

我的架构如下所示:

userSchema = new mongoose.Schema({
  General: { Name: "Testname"}
  data: {
     car_ref:{
        type: mongoose.Schema.Types.ObjectId,
        ref: "car" 
      }
 });

carSchema = new mongoose.Schema({
  carName: String
});

这是我的汽车入口的样子:

 Car: [{ _id: ..., Name: 'testCarname' }]

标签: mongoosenestedpopulate

解决方案


推荐阅读