2017-03-29 115 views
0

對於mongodb,我很新,所以請原諒我的遺忘。 我的數據庫的一個樣本提供如下:獲取與MongoDB中的值相關的所有文檔

{ 
    "_id" : ObjectId("58db82583d5b9f0a47c3db6f"), 
    "People" : [ 
      "Ivar Zapp" 
    ], 
    "Link" : [ 
      "https://wikileaks.org/gifiles/docs/19/1971280_panama-costa-rica-cuba-111104-.html" 
    ] 
} 
{ 
    "_id" : ObjectId("58db82583d5b9f0a47c3db70"), 
    "People" : [ 
      "Ivar Zapp" 
    ], 
    "Link" : [ 
      "https://wikileaks.org/gifiles/docs/87/872609_panama-costa-rica-cuba-111104-.html" 
    ] 
} 
{ 
    "_id" : ObjectId("58db82583d5b9f0a47c3db71"), 
    "People" : [ 
      "Ivar Zapp" 
    ], 
    "Link" : [ 
      "https://wikileaks.org/gifiles/docs/19/1964024_-latam-centam-brief-111104-.html" 
    ] 
} 

我現在的問題是,按照上面的代碼片段,我怎麼獲得鏈接的有關一個人的名字計數?例如下面的輸出:

{ 
    "People" : "Ivar Zapp", 
    "link_Count" : "3" 
} 

我想過聚集的,但我沒有真正似乎現在可以找出使用聚合的解決方案相當長一段時間。只要它能幫助我取得進步,我願意接受任何解決方案或反饋意見。任何解決方案或反饋提供最受讚賞!提前致謝!

回答

2

您需要使用$組操作: 你試試下面的命令,

db.collection.aggregate([ 
    { $group: { 
     _id: '$People', 
     count: { $sum: 1 } 
    }}, 
    { $project: { 
     _id: 0, 
     People: '$_id', 
     count: 1 
    }} 
    ]); 

輸出:

{ 
    "count": 3, 
    "People": ["Ivar Zapp"] 
} 
相關問題