如何使用MongoDB中的聚合函数将ObjectId推入数组

时间:2019-02-18 22:58:41

标签: javascript database mongodb aggregate-functions

我有一个查询来查询我期望的所有url_permissions

但是这里有一个问题。我有url_permissions,但它们仍在我的结果数组中。

我如何将它们全部作为一个ObjectId而不是一个数组?

权限收集结构

{
    "_id" : ObjectId(""),
    "role" : "",
    "sub_permissions" : [ObjectId(''), ObjectId(''), ObjectId(''), ....],
    "url_permissions" : [ObjectId(''), ObjectId(''), ObjectId(''), ....]
}

查询

db.permissions.aggregate(
    [
      { $match: { _id: { $in: ARRAY_HERE_NOT_IMPORTANT } } },
      { $group :
          {
            _id : null,
            url_permissions: { $push: '$url_permissions' }
           }
       }
    ]
)

结果

{
    "_id" : null,
    "url_permissions" : [ 
        [ 
            ObjectId("5c6ad3191da7a5ff43d13c7f"), 
            ObjectId("5c6ad3341da7a5ff43d13c95")
        ], 
        [ 
            ObjectId("aaaad3d51da7a5ff43d1dddd")
        ]
    ]
}

预期结果

{
    "_id" : null,
    "url_permissions" : [ 
            ObjectId("5c6ad3191da7a5ff43d13c7f"), 
            ObjectId("5c6ad3341da7a5ff43d13c95"),
            ObjectId("aaaad3d51da7a5ff43d1dddd")
    ]
}

0 个答案:

没有答案