2017-10-11 121 views
0

编辑:解决方案发现在第一条评论中,你也可以检查that question,我们达到同样的效果。MongoDB组文件按字段名称没有指定值

比方说,我有包括这些文件

{name: 'John', fruit:'apples'}, 
{name:'Zac', fruit:'bananas'}, 
{name:'Sara', fruit:'oranges'}, 
{name:'John', fruit:'oranges' }, 
{name:'Sara', fruit:'pear'} 

是否有使用MongoDB的分组由他们的字段名这些文件没有指定其值的任何方式的集合?我希望所有的文件按照他们的名字进行分组,而不用指定“John”或“Sara”。

我所试图实现的是由名组他们,所以伪代码会是这样的:

db.collection.groupByField('name')

和期望的结果是:

[ 
    [ 
    {name: 'John', fruit:'apples'}, 
    {name:'John', fruit:'oranges' } 
    ], 
    [ 
    {name:'Zac', fruit:'bananas'} 
    ], 
    [ 
    {name:'Sara', fruit:'oranges'}, 
    {name:'Sara', fruit:'pear'} 
    ] 
] 
+0

尝试'db.collection.aggregate([{$ group:{_ id:“$ name”,data:{$ push:“$$ ROOT”}}}])' – Veeram

+0

是的,我们都非常想要相同的东西。 我的问题是对那些不熟悉聚合的经验较少的程序员。 感谢您的帮助,伙计们。 – Hafez

回答

0

Veeram回答我问题在评论中,解决办法是:

db.collection.aggregate([{$group:{_id:"$name", data:{$push:"$$ROOT"}}}])

相关问题