我试图在字段“ guid”上应用聚合,然后仅当“ guid”的计数等于1时才推送“ firstname”,即“ fname”,否则推送“ null”。 问题是它应按“ fname”,但应按“ null”。
connections.db.collection('users').aggregate([{
$group: {
_id: "$guid",count:{$sum:1},
Name:{
$push: {
$cond: {
if: { $eq: ["count" , 1] }, then: "$fname" , else: null,
}
}
}
}
}]).toArray().then(data=>{
data.forEach(element => {
console.log(element);
});
})
“ guid”的计数为“ 1”时的预期结果:
{ _id: '789456123', count: 2, Name: [ 'null', 'null' ] }
{ _id: '987654321', count: 1, Name: [ 'john' ] }
“ guid”的计数为“ 1”时的实际结果。
{ _id: '789456123', count: 2, Name: [ 'joseph', 'sara' ] }
{ _id: '987654321', count: 1, Name: [ 'john' ] }