2017-03-29 56 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"] 
} 
相关问题