为什么“ $ eq”在mongodb中返回错误的值?

时间:2019-05-26 12:44:35

标签: mongodb mongodb-query

我试图在字段“ 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' ] }

0 个答案:

没有答案