MongoDB graphlook不';不包括根元素

MongoDB graphlook不';不包括根元素,mongodb,mongoose,graph,Mongodb,Mongoose,Graph,我有以下几类收藏: [ { _id: '5f63cec98f122903783a10b1', content: null, root: true, siblings: [ { _id: { $oid: '5f63cec98f122903783a10b2', }, selection: null, }, ],

我有以下几类收藏:

[
    {
      _id: '5f63cec98f122903783a10b1',
      content: null,
      root: true,
      siblings: [
        {
          _id: {
            $oid: '5f63cec98f122903783a10b2',
          },
          selection: null,
        },
      ],
    },
  ];
我想获得以下格式的节点列表:
[node1,node2,node3]
以及链接列表
[{siblingA:…,siblingB:…}]

首先,我只需要根节点及其同级节点(如果通过
maxDepth
参数请求,还需要其同级节点的同级节点)

以下是我得到的最接近的结果:

aggregate([
        { $match: { root: true } },
        {
          $graphLookup: {
            from: 'nodes',
            startWith: '$siblings._id',
            connectFromField: 'siblings._id',
            connectToField: '_id',
            as: 'notes',
            maxDepth: 0,
          },
        },
        { $unwind: { path: '$nodes' } },
        { $replaceRoot: { newRoot: '$nodes' } },
      ]
此解决方案有两个问题:

  • 我没有包含根节点
  • 我没有链接列表
    [{siblingA:…,siblingB:…}]
    (但我可以稍后手动构建它)
  • 你认为我的结构最适合处理这类问题吗?我的问题有什么解决方案