0
一個MongoDB的查詢給了我一個結果數組是這樣的:JS /下劃線:_.groupBy或_.uniq讓現場的獨特/分組元素是現有
var result = [
{
_id: 'GrRQ56ZvTGpSajvCr',
title: 'Element 1'
meta: {
groupId: '1'
}
},
{
_id: 'nQs7T5QZcjbyxe6Yh',
title: 'Element 2'
meta: {
groupId: '1'
}
},
{
_id: 'cbDqv6ExZoYJQJLnP',
title: 'Element 3'
meta: {
groupId: '2'
}
},
{
_id: 'v6ExZoYcbDqJQJLnP',
title: 'Element 4'
meta: {
groupId: '2'
}
},
{
_id: 'qbqiEGwsGyprfutZM',
title: 'Element 5'
meta: {
}
},
{
_id: 'rfutZMqbqiEGwsGyp',
title: 'Element 6'
meta: {
}
}
]
現在我需要輸出的每個元件,而不groupID和每個相同groupId只有一個元素。 (我不能在我的MongoDB的查詢中使用distinct
或aggregate
直接,所以我有這個結果工作)
所以我想用_.unique
或_.groupBy
的。
const resultGroupBy = _.groupBy(result, function(element) { return element.meta.groupId })
const resultUnique = _.uniq(result, function(item, key, a) { return item.a }) // don't understand the syntax for this :-(
但是兩者都沒有按需要工作。
我的結果應該是:
groupedResult.map((element) => {
console.log(element.title, kindOfCounter)
})
Element 1, 2 // Two elements for group 1
Element 3, 2 // Two elements for group 2
Element 5, 1 // Single element without group
Element 6, 1 // Single element without group
元件2和元件4被去除,爲組1和組2應該由只有一個元素來表示,雖然有在開頭兩個元素。