Как рассчитать положительную и отрицательную цену, используя 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
}