MongoDB - 聚合2在一个投影中找到

时间:2018-04-19 09:59:52

标签: mongodb mongodb-query

在mongodb 3.6中构建查询时遇到一些麻烦,它会将(?)一些数据聚合在一起。

我有一个名为" Roles"的集合,其中我存储我的角色和链接到该角色的用户:

{
 _Id: ObjectId('..'),
 RoleName: admin,
 Users: [.. array of users ..]
},
{
 _Id: ObjectId('..'),
 RoleName: others,
 Users: [.. array of users ..]
},
{
 _Id: ObjectId('..'),
 RoleName: users,
 Users: [.. array of users ..]
}

我搜索了大量关于投影和查找操作符,没有成功。 我想得到这样的东西:

{
 _Id: ObjectId('a'),
 RoleName: admin,
 Users: [.. array of users ..],
 AvailableRoles: [
     {
         _Id: ObjectId('c'),
         RoleName: users
     },
     {
         _Id: ObjectId('b'),
         RoleName: others
     }]
},
{
 _Id: ObjectId('b'),
 RoleName: others,
 Users: [.. array of users ..],
 AvailableRoles: [
      {
         _Id: ObjectId('c'),
         RoleName: users
      },
      {
          _Id: ObjectId('a'),
          RoleName: admin
      }]
},
{
 _Id: ObjectId('c'),
 RoleName: users,
 Users: [.. array of users ..],
 AvailableRoles: [
     {
         _Id: ObjectId('b'),
         RoleName: others
     },
     {
         _Id: ObjectId('a'),
         RoleName: admin
     }]
}

" AvailableRoles"如您所见,包含除他自己以外的其他角色实体。

是否可以在一个查询中进行?

问候

0 个答案:

没有答案