簡體   English   中英

根據id Mongodb從數組中獲取其他收集數據的計數

[英]Get the count of other collection data from the array based on id Mongodb

我想根據部門集合中的部門ID獲取清單的數量

我的收藏如下:

departments : [
{_id: 838383, name: Dump}
{_id: 838384, name: Recycle}
]
checklists: [
{_id: 33333, department_id:838383, name: Tyre},
{_id: 33334, department_id:838383, name: Car body},
{_id: 33335, department_id:838383, name: Wheel},
{_id: 33336, department_id:838383, name: Mirror}
]

現在我要獲取部門列表,包括基於部門ID的清單數量

這是我想要的回復:

departments : [
    {_id: 838383, name: Dump, checklists_count: 4}
    {_id: 838384, name: Recycle, checklists_count: 0}
    ]

用貓鼬做這件事的最好方法是什么?

提前致謝

您可以使用$lookup實現此目的。

db.departments.aggregate(
 { "$lookup": {
       "from": "checklists",
       "localField": "_id",
       "foreignField": "department_id",
       "as": "checklists"
    }}
    ,
    {
        "$project":
        {_id:1,"name":1,
            checklists_count:{$size:"$checklists"}
        }
    })

結果:

{
    "_id" : 838383,
    "name" : "Dump",
    "checklists_count" : 4
},
{
    "_id" : 838384,
    "name" : "Recycle",
    "checklists_count" : 0
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM