Я разрабатываю программное обеспечение для выставления счетов для ведения ежедневных записей. Я использую базу данных PyGTk (для пользовательского интерфейса) и MongoDB (NoSQL). Я храню записи каждого счета в следующем формате
{
"_id" : ObjectId("5b83f95a3859201d46385779"),
"date" : "27/08/2018",
"bill_number" : 7,
"bill_amount" : 85,
"payment_mode" : "Cash",
"bill_content" : [
{
"item_code" : 1,
"item_name" : "abc",
"item_count" : 1
},
{
"item_code" : 2,
"item_name" : "xyz",
"item_count" : 2
}
]
}
{
"_id" : ObjectId("5b83f95f3859201d4638577b"),
"date" : "27/08/2018",
"bill_number" : 8,
"bill_amount" : 125,
"payment_mode" : "Card",
"bill_content" : [
{
"item_code" : 3,
"item_name" : "xyz",
"item_count" : 2
},
{
"item_code" : 2,
"item_name" : "abc",
"item_count" : 1
}
]
}
{
"_id" : ObjectId("5b83f95f3859201d4638577b"),
"date" : "27/08/2018",
"bill_number" : 8,
"bill_amount" : 125,
"payment_mode" : "Online",
"bill_content" : [
{
"item_code" : 3,
"item_name" : "abc",
"item_count" : 1
},
{
"item_code" : 2,
"item_name" : "xyz",
"item_count" : 3
},
{
"item_code" : 1,
"item_name" : "pqr",
"item_count" : 1
}
]
}
Я хочу следующие записи из записей:
- Общая дневная сумма
- Сумма суммы, сгруппированная по способу оплаты
- Количество каждого предмета ежедневно (если возможно)
Пример вывода
{
'date':'27/08/2018',
'total_amount': 335,
'payment_mode': [{'Cash': 85},{'Card': 125}, 'Online': 125],
'item_count': [{'abc':3},{'xyz':5},{'pqr':1}]
}
Я новичок в NoSQL, поэтому не могу понять, как сделать все за один запрос. Пожалуйста, скажите мне, возможно ли это или нет, или есть ли лучший способ хранить записи.