mongodb:: вызвано :: Попыткой преобразовать значение NaN в целочисленный тип в $convert без ошибки

#javascript #arrays #mongodb #mongodb-query #aggregate

Вопрос:

  {
                    $match: { user: mongodb.ObjectId(userId) }
                },
                {
                    $unwind: '$products'
                },
                {
                    $project: {
                        item: '$products.item',
                        quantity: '$products.quantity'
                    }
                },
                {
                    $lookup: {
                        from: collection.PRODUCT_COLLECTION,
                        localField: 'item',
                        foreignField: '_id',
                        as: 'product'
                    }
                },
                {
                    $project: {
                        item: 1, quantity: 1, product: { $arrayElemAt: ['$product', 0] }
                    }
                },
                {
                    $group: {
                        _id: null,
                        total: { $sum: { $multiply: [{ $toInt: '$quantity' }, { $toInt: '$product.Price' }] } }
                    }
                }

            ])
 

но в нем говорится, что необработанное предупреждение об ошибке: Ошибка MongoServerError: PlanExecutor во время агрегации :: вызвано :: Попыткой преобразовать значение NaN в целочисленный тип в $convert без значения onError

Комментарии:

1. $toInt является оболочкой для $convert , убедитесь, что аргументы являются числами для каждого документа.