2017-03-29 5 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"] 
} 
関連する問題