2017-10-11 160 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"}}}])

相關問題