Sri*_*ula 5 mongodb aggregation-framework
我有以下格式的资产文件。
db.asset.find({}).limit(1).pretty()
{
"_id" : ObjectId("54e650a10364a65f62c0df4a"),
"_class" : "com.model.core.Asset",
"displayName" : "Bingo Rhymes For Children + More 3D Animation Nursery Rhymes & Kids' Songs",
"assetType" : "VIDEO",
"active" : true,
"originalUrl" : "https://www.youtube.com/watch?v=j-tdVvvXn9k&feature=youtube_gdata",
"groupIds" : [ ],
"folderIds" : [
"54e6507b0364a65f62c0df47",
"54e6507b0364a65f62c0df48"
]
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,每个资产都可以有一个与之关联的 folderId 集合。如果我想找到 folderIds 以及关联的资产,mongo 聚合查询会是什么样子?基本上我想按folderId对资产进行分组。
您首先需要按字段展开folderIds,然后按分组_id并将资产推送到_id列表中assets_id。
db.asset.aggregate([{$unwind:"$folderIds"}, {$group:{_id: "$folderIds",assets:{$push: {assets_id:"$_id"}}}}])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8531 次 |
| 最近记录: |