1
所有其他領域我有以下表結構:分組與MongoDB的
出租:
{
'_id' : '1',
'user_id' : 1,
'item_id' : 6,
'name' : "First rental",
}
{
'_id' : '2',
'user_id' : 2,
'item_id' : 7,
'name' : "Second rental",
}
{
'_id' : '3',
'user_id' : 2,
'item_id' : 8,
'name' : "Third rental",
}
我想深受用戶喜歡這種分組租金的列表:
{
'user' : '1',
'rental_count': 1,
'rentals' : [
{
'_id' : '1',
'item_id' : 6,
'name' : "First rental"
}
]
'user' : '2',
'rental_count: 2',
'rentals' : [
{
'_id' : '2',
'item_id' : 7,
'name' : "Second rental"
},
{
'_id' : '3',
'item_id' : 8,
'name' : "Third rental"
},
]
}
如何你可以用mongodb做到這一點(如果需要,我可以使用聚合框架)。
我已經試過這樣的事情:
self.collection.aggregate([
{'$group' => {_id: {user_id: '$user_id'},
rental_items: {'$addToSet' => '$item_id'}
rental_ids: {'$addToSet' => '$_id'}
}
]},
但它永遠不會工作,因爲我已經在許多不同組的租房信息,我想爲每個用戶在單個陣列中的所有租金。
也許MapReduce可以幫助你在這裏。 – Philipp