Estoy tratando de realizar esta agregación en una operación $lookup mongo donde quiero pasar una variable a un objeto de fecha.
Me pregunto si esto es posible
deal_cliff: new Date(new Date("$integrated").getTime() + 540 * 86400000), como puede ver, el problema es que "$integrated" se usa como una cadena y no como una fecha real, ya que es una variable de signo de dólar mongo.
Se agradece cualquier tipo de ayuda.
código completo:
$lookup: { from: 'deals', // set variables that can be used in the pipeline below let: { group_id: '$parentGroupId', internal_comm: { $toDecimal: '$internalCommission.amount' }, dealer_id: dealerId, deal_cliff: new Date(new Date('$integrated').getTime() + 540 * 86400000), <---- Problem here booking_provider: '$provider', booking_booked_on: '$bookedOn' }, pipeline: [ { $match: { $expr: { $eq: ['$groupId', '$$group_id'] } } }, { $unwind: '$dealers' }, ...(userType === USER_TYPES.BDM && dealerId ? [ { $match: { $expr: { $eq: ['$dealers.dealerId', '$$dealer_id'] } } } ] : []), { $addFields: { dealerComm: { $cond: [ // If booking provider not Trivago & booking <= cliff date { $and: [ { $ne: ['$$booking_provider', "Trivago"] }, { $lte: ['$$booking_booked_on', "$$deal_cliff"] } ] }, // do { $multiply: [ '$dealers.effort', '$$internal_comm', '$dealers.repCommission' ] }, // else return 0 ] } } }, { $group: { _id: '$_id', totalDealerComm: { $sum: { $cond: { if: '$dealerComm', then: { $toDecimal: '$dealerComm' }, else: 0 } } } } } ], as: 'deal' }