tôi có 2 loại khác nhau đối tượng được lưu trữ trong RavenDb, đó là một mối quan hệ cha/loại trẻ em, như thế này trong JSON:Bản giảm trong RavenDb hơn 2 bộ sưu tập với bộ sưu tập con
Account/1
{
"Name": "Acc1",
}
Items/1
{
"Account": "Account/1",
"Value" : "100",
"Tags": [
"tag1",
"tag2"]
}
Items/2
{
"Account": "Account/1",
"Value" : "50",
"Tags": [
"tag2"]
}
Lưu ý rằng tôi không muốn lưu trữ chúng trong cùng một tài liệu, vì tài khoản có thể có hàng nghìn mục.
Tôi cố gắng để viết một bản đồ/giảm chỉ số đó sẽ trả lại cho tôi một cái gì đó như:
{
"Account": "Acc1",
"TagInfo": [
{ "TagName" : "tag1",
"Count" : "1", //Count of all the "tag1" occurrences for acc1
"Value" : "100" //Sum of all the Values for acc1 which are tagged 'tag1'
},
{ "TagName" : "tag2",
"Count" : "2", //Two items are tagged "tag2"
"Value" : "150"
}]
}
tức là một danh sách của tất cả các tên thẻ riêng biệt cùng với số lượng của mỗi và giá trị của họ. Tôi nghĩ rằng tôi cần phải sử dụng một bản đồ đa để ánh xạ các bộ sưu tập Tài khoản và Mục với nhau, nhưng tôi không thể tìm ra phần giảm để tạo ra phần "TagInfo" của kết quả.
Điều này có thể xảy ra không, hoặc tôi có mô hình hóa tất cả điều này sai trong Raven không?
EDIT:
Lớp tôi muốn lấy từ truy vấn này sẽ giống như thế này:
public class QueryResult
{
public string AccountId {get;set;}
public TagInfo Tags {get;set;}
}
public class TagInfo
{
public string TagName {get;set;}
public int Count {get;set;}
public int TotalSum {get;set;}
}
Cảm ơn Daniel, tôi không biết về 'TransformResults'! Đó không phải là những gì tôi muốn mặc dù, tôi đã sau một kết quả cho mỗi tài khoản, với một tài sản có chứa các chi tiết thẻ, xem chỉnh sửa của tôi.Ngoài ra, TotalSum ở trên không hoạt động, vì nó tính tổng TẤT CẢ các giá trị mục, không chỉ là giá trị cho tài khoản mà tôi đang truy vấn (Tôi nghĩ rằng giảm nhu cầu nhóm trên tài khoản thay vì thẻ?) – Simon
Bạn không thể có chỉ mục có một lớp lồng nhau trong kết quả của nó. Tôi không nghĩ rằng bạn có thể có được những gì bạn muốn trong một chỉ mục duy nhất. Thay vào đó, tôi thà có một vài chỉ mục độc lập và truy vấn tất cả các thông tin bạn cần hoặc thay đổi mô hình dữ liệu sao cho nó phù hợp với mô hình truy cập dữ liệu tốt hơn. –
Ok, cảm ơn Daniel. Tôi nghĩ rằng đó có thể là trường hợp, nhưng không quá chắc chắn. Cảm ơn vì bạn đã dành thời gian. – Simon