2012-07-24 21 views
9

tôi có một cái nhìn couchdb thiết lập bằng một mảng giá trị quan trọng, trong các định dạng:CouchDB - Truy vấn mảng giá trị quan trọng đối với yếu tố then chốt đầu tiên chỉ

[articleId, -timestamp] 

tôi muốn truy vấn cho tất cả các mục với id bài viết tương tự . Tất cả các dấu thời gian đều được chấp nhận.

Ngay bây giờ tôi đang sử dụng một truy vấn như thế này:

?startkey=["A697CA3027682D5JSSC",-9999999999999]&endkey=["A697CA3027682D5JSSC",0] 

nhưng tôi muốn một cái gì đó đơn giản hơn một chút.

Có cách nào dễ dàng để ký tự đại diện cho phần tử khóa thứ hai không? Cú pháp đơn giản nhất cho điều này là gì?

+6

Tôi tin rằng tất cả các bạn cần làm là '? Startkey = [ "A697CA3027682D5JSSC"] & endkey = [ "A697CA3027682D5JSSC", {}]' –

Trả lời

13

Thứ nhất, như một bình luận chỉ ra, có thực sự là một giá trị đặc biệt {} được ra lệnh sau khi bất kỳ giá trị, vì vậy truy vấn của bạn trở thành:

startkey=["target ID"]&endkey=["target ID",{}] 

Đây là là tương đương với một trận đấu wildcard. Một lưu ý phụ, không cần phải đảo ngược thứ tự trong chức năng bản đồ bằng cách phát ra dấu thời gian âm, bạn có thể đảo ngược thứ tự như một tùy chọn cho lời gọi xem (khóa khởi động và kết thúc của bạn sẽ được hoán đổi).

startkey=["target ID",{}]&endkey=["target ID"]&descending=true 
+0

Tuyệt vời. Tôi đã tìm kiếm mọi thứ cho điều này, nhưng tôi đoán thuật ngữ của tôi không chính xác. Cảm ơn rất nhiều :) – Gopherkhan

+0

Bạn tìm thấy thông tin này ở đâu? nó hoạt động rất tốt nhưng tôi đã cọ rửa tài liệu cho tuần trước và đây là nơi đầu tiên tôi thấy {} được đề cập. – MBillau

+1

@MBillau quá dài nên tôi không nhớ nữa. Tôi nghĩ rằng nó có một cái gì đó để làm với thứ tự chữ cái của '{}'. –

Các vấn đề liên quan