Вставить число как intiger в mongodb в nodejs

#javascript #node.js #mongodb

#javascript #node.js #mongodb

Вопрос:

ОШИБКА

 UnhandledPromiseRejectionWarning : MongoError: $multiply only supports numeric types, not string
  

проблема в том, что я взял сумму товаров в корзине. но цена указана в формате строки … синтаксический анализ Int не работает
, есть ли какой-либо способ вставить как число в базу данных


ДОБАВИТЬ КОД ПРОДУКТА

  addProduct: (product, callback) => {
        db.get().collection('product').insertOne(product).then((data) => {
            callback(data.ops[0]._id)
        })

    }
  

** ЧТОБЫ НАЙТИ СУММУ И ВЕРНУТЬ **

 getTotalAmount:(userId)=>{
    return new Promise(async (resolve, reject) => {
        let total = await db.get().collection(collection.CART_COLLECTION).aggregate([
            {
                $match: { user: 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:['$quantity','$product.price']}}
                }
            }

        ]).toArray()
        console.log(total[0].total);
        resolve(total)
    })
  

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

1. Реальная проблема, похоже, заключается в следующем — «синтаксический анализ Int не работает». Пожалуйста, приведите пример этой проблемы.

2. Я не использовал синтаксический анализ… форма содержит как строковые, так и числовые элементы… но все элементы хранятся как strings…is там требуется синтаксический анализ .. если да, то куда я должен включить … в настоящее время я отправляю все элементы продукта непосредственно в базу данных

3. Похоже, вам следует рассмотреть возможность отправки соответствующих свойств уже в виде чисел или преобразовать данные в серверной части непосредственно перед вставкой в БД. Первый вариант должен быть лучше. Если данные числовые, почему они отправляются в виде строки в первую очередь?

4. В настоящее время я использую целое как object…so пожалуйста, скажите мне, как отправить как intiger в БД

5. Тогда, пожалуйста, измените вопрос. Укажите фактическое изменение, которое вы хотите внести. Включите только соответствующую информацию — например, образец объекта product.