javascript 如何填充嵌套的虚拟对象?

wj8zmpe1  于 2023-03-21  发布在  Java
关注(0)|答案(2)|浏览(96)

我有一个数据集合(匹配项),其中一个虚拟财产引用另一个集合(花名册)。集合(花名册)引用集合(参与者)中的另一个虚拟财产。我已成功填充集合(花名册)。但是,我无法填充集合(参与者)。
火柴

{
"_id": {
    "$oid": "5c1b99843a71d812af25b10d"
},
"type": "match",
"id": "0b0ad010-ee86-11e8-b29a-061fc5dc976c",
"relationships": {
    "rosters": {
        "data": [
            {
                "type": "roster",
                "id": "8dc6f770-ee88-11e8-b755-9d41e8e54ecc"
            },
            {
                "type": "roster",
                "id": "8dc6f774-ee88-11e8-b755-9d41e8e54ecc"
            }
        ]
    }

}

}
名册

"_id": {
    "$oid": "5c1b99843a71d812af25b151"
},
"type": "roster",
"id": "f51f1250-ee87-11e8-a185-711497405867",
"relationships": {
    "participants": {
        "data": [
            {
                "type": "participant",
                "id": "f51f1251-ee87-11e8-a185-711497405867"
            },
            {
                "type": "participant",
                "id": "f51f1252-ee87-11e8-a185-711497405867"
            },
            {
                "type": "participant",
                "id": "f51f1253-ee87-11e8-a185-711497405867"
            }
        ]
    }
}

以下是我目前的情况。

Match.find([])
  .populate({
    path: 'rosters',  // virtual
    populate: {
      path: 'participant', // virtual
      model: 'Participant'
    }
  }

我希望在match示例中有一个填充的参与者示例,但实际输出是:参加者:{ data:[Array] }。

wqnecbli

wqnecbli1#

我现在无法测试这个,但是您是否尝试过在第一个填充调用之后添加另一个填充调用,或者尝试过像这样的嵌套填充调用:是吗

kkbh8khc

kkbh8khc2#

你可以这样做:columns是Board的虚拟值。tasks是Column的虚拟值。

const board = await Board.find({ _id: boardId }).populate({
    path: "columns",
    populate: { path: "tasks" },
  });

你可以在documnet中阅读更多关于人口的信息:https://mongoosejs.com/docs/populate.html#deep-populate

相关问题