2010-09-07 38 views
7

Có thể sử dụng các ký tự đại diện trong các khung nhìn trong CouchDB không? Ví dụ: giả sử tôi có cơ sở dữ liệu có đội, tuổi của người chơi, trung bình của người chơi và giới tính của người chơi. Tuy nhiên, tuổi của người chơi có thể không được biết đến - họ có thể đến từ Cộng hòa Dominica hay không. Vì vậy, tôi muốn sử dụng chế độ xem có chức năng bản đồ có thể chấp nhận không có độ tuổi của người chơi. Nếu tôi muốn đưa người chơi có mức trung bình cao nhất vào một đội bất kể tuổi tác hay với độ tuổi cụ thể, tôi phải làm như thế nào nếu tôi muốn sử dụng các phím ghép? Ví dụ: giả sử chức năng phát hành bản đồ của tôi giống như sau:Ký tự đại diện trong Chế độ xem với CouchDB?

emit([doc.team, doc.gender, doc.age], doc.average); 

Tôi phải làm gì nếu tôi muốn nhập khóa để thu hẹp, nhưng vẫn là yếu tố trong các trình phát không có độ tuổi nhập vào, nên thay vì:

http://127.0.0.1:5984/savings/_design/players/_view/average?key=["Yankees","male",8] 

làm điều gì đó mà kết hợp một ký tự đại diện như thế này để có được giá trị trung bình bất kể tuổi tác:

http://127.0.0.1:5984/savings/_design/players/_view/average?key=["Yankees","male",*] 

có thể viết một cái nhìn trong CouchDB để làm một cái gì đó như t của anh ấy? Hoặc tôi có cần phải viết nhiều lượt xem và xử lý chúng một cách riêng biệt không?

Cảm ơn,
Bến

Trả lời

7

Wildcard là không thể, nhưng bạn có thể chỉ định startkeyendkey:

http://127.0.0.1:5984/savings/_design/players/_view/average?startkey=["Yankees","male",0]&endkey=["Yankees","male",999] 
+8

endkey = ["Yankees", "male ", {}] sẽ hoạt động tốt hơn vì {} được sắp xếp sau bất kỳ số nào. – ordnungswidrig

+0

Như dedalo và ordnungswidrig chỉ ra, bạn có thể sử dụng dấu ngoặc rỗng như một ký tự đại diện với startkey & endkey, do đó, câu trả lời của bạn là loại khó hiểu khi nó nói "ký tự đại diện là không thể". – Bdoserror

13

Bạn có thể chỉ định startkeyendkey và sử dụng "ký tự đại diện" {}, một JavaScript trống đối tượng:

http://127.0.0.1:5984/savings/_design/players/_view/average?startkey=["Yankees","male",0]&endkey=["Yankees","male",{}] 
Các vấn đề liên quan