我希望能够列出以下内容
数据
/* 1 */
{
"name" : "Dash"
}
/* 2 */
{
"name" : "Dash"
}
/* 3 */
{
"name" : "Pink"
}
/* 4 */
{
"name" : "Pink"
}
/* 1 */
{
"name" : "Jamie"
}
db.getCollection('players').distinct('name')
目前可以获得的内容:
/* 1 */
[
"Dash",
"Pink",
"Jamie"
]
我想要的是什么:
/* 1 */
[
{
name: "Dash",
number: 2
}
{
name: "Pink",
number: 2
}
{
name: "Jamie",
number: 1
}
]
这可以用mongo吗?
答案 0 :(得分:1)
使用MongoDB的聚合命令肯定是可行的。您正在寻找的是$ group聚合(https://docs.mongodb.com/v3.2/reference/operator/aggregation/group/)。
从这些分组中,您可以将名称设置为_id,并使用$sum
操作来包含计数。 shell命令的示例如下:
db.players.aggregate([{
$group : {
_id : { name: "$name" },
number: { $sum: 1 }
}
}])
这将根据需要返回分组。有关更多信息,请单击我给出的链接,然后查看示例:)欢呼