와 다른 모든 필드 그룹화 나는 다음과 같은 테이블 구조가 있습니다MongoDB를
대여 :
{
'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"
},
]
}
방법 :
{
'_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",
}
는이 같은 사용자들에 의해 그룹화 대여 목록을 싶습니다을 mongodb (필요한 경우 집계 프레임 워크를 사용할 수 있음)로 그렇게 할 수 있습니까?
self.collection.aggregate([
{'$group' => {_id: {user_id: '$user_id'},
rental_items: {'$addToSet' => '$item_id'}
rental_ids: {'$addToSet' => '$_id'}
}
]},
하지만 다른 세트의 많은의 임대 정보를 가지고 있기 때문에 그것은 작동하지 않습니다, 그리고 각 사용자에 대해 하나의 배열의 모든 대여를 원하는 :
나는 이런 식으로 뭔가를 시도했습니다.
당신이 게시 집계 쿼리에 대한 권리 보인다
아마도 MapReduce가 도움이 될 수 있습니다. – Philipp