Как рассчитать положительную и отрицательную цену, используя mongodb или robomongo?

ниже мои данные сбора цен пользователей

{
    "_id" : ObjectId("584bc9ba420a6b189c510af6"),
    "user_id" : 1,
    "mobilenumber":"01234",
    "price" : 2000.0,
    "type" : "credit",

},
{
    "_id" : ObjectId("584bc9ba420a6b189c510af6"),
    "user_id" : 1,
    "mobilenumber":"01234",
    "price" : -1000.0,
    "type" : "credit",

},
{
    "_id" : ObjectId("584bc9ba420a6b189c3323w23"),
    "user_id" : 2,
    "mobilenumber":"04321",
    "price" : 1000.0,
    "type" : "credit",

}

здесь я хочу вычислить общую положительную и общую отрицательную цену для всех пользователей, и мне нужно проверить, существует ли этот пользователь в итоговой коллекции. Если запись не существует, нам нужно создать документ в итоговой коллекции, если он существует, нам нужно обновить " Итогоположительная цена »,« Итогоотрицательная цена »и« Балансовая цена »

в сводной таблице уже существует эта запись

    {

        "user_id": "1",
        "mobilenumber":"01234",
        "Totalpositiveprice": 3000.0,
        "Totalnegativeprice": 0,
        "Balanceprice": 3000.0
    },
   {

        "user_id": "3",
        "mobilenumber":"05555",
        "Totalpositiveprice": 1000.0,
        "Totalnegativeprice": -100,
        "Balanceprice": 900.0
    }

нам нужно обновить документ для «mobilenumber»: «01234»,

нам нужно создать новый документ для "mobilenumber": "04321",

"mobilenumber": "05555" не нужно ничего делать, потому что в ценах пользователей ничего нет

наконец, я должен получить сводную коллекцию, как это

 {

        "user_id": "1",
        "mobilenumber":"01234"
        "Totalpositiveprice": 5000.0,
        "Totalnegativeprice": -1000.0,
        "Balanceprice": 4000.0
    },
    {

        "user_id": "2",
         "mobilenumber":"04321"
        "Totalpositiveprice": 1000.0,
        "Totalnegativeprice": 0,
        "Balanceprice": 1000.0
    },
    {

    "user_id": "3",
    "mobilenumber":"05555",
    "Totalpositiveprice": 1000.0,
    "Totalnegativeprice": -100,
    "Balanceprice": 900.0
}

Ответы на вопрос(4)

Ваш ответ на вопрос