사용자 및 브랜드라는 두 개의 엔티티를 연관시키는 스키마를 설정했습니다. 이 연결은 UserBrand 문서에 저장됩니다. 사용자는 여러 브랜드를 보유 할 수 있으며 각 UserBrand 문서에는 포함 된 정보가 다릅니다. 여기 그룹화 된 여러 문서의 결과 합계
세 가지 문서의 예입니다{
type: "UserBrand",
userId: "x",
brandId: 1,
value: 100
}
{
type: "UserBrand",
userId: "x",
brandId: 2,
value: 50
}
{
type: "UserBrand",
userId: "y",
brandId: 1,
value: 150
}
당신이 사용자 x는 '여러 브랜드를 다음시피. 사용자 정보를 가져 오는 동안 사용자별로 그룹화 된 값의 합계를 얻으려면 어떻게해야합니까?
SELECT ub.*, u.name FROM bucket as ub JOIN bucket as u ON KEYS "User_" || ub.userId WHERE ub.type="UserBrand" AND u.type="User" AND (ub.brand=1 OR ub.brand=2)
하지만 그룹에 레코드를 보이는 단일 사용자에 대한 값을 합산 할 수 없습니다
은 지금까지 나는이 쿼리를 통해 두 문서 유형 (사용자 및 UserBrand)에 가입 할 수 있어요. 단일 쿼리에서 그렇게 할 수 있습니까? 왜 '참여'대신 단순히의 '그룹에 의해'사용
{
type: "UserBrand",
name: "name1',
userId: "x",
brandId: 1,
value: 150
}
{
type: "UserBrand",
name: "name2',
userId: "y",
brandId: 1,
value: 150
}
최종 결과는 무엇입니까? –
@RoiKatz 위 쿼리를 실행하면 다소 많은 예제가 생성됩니다. 나는 문서를 반복하고 값을 합산 할 수있을 것이라고 생각하지만, 특별히 많은 레코드가있을 때 단일 쿼리가 더 효율적일 수 있다고 생각했습니다. –