到目前为止,我在couchdb中创建的所有视图都使用了键中的数值。在键上添加字母字符时,我有点意外。
我的观点是按预期返回值:
[2011,12,5,14,22,"foo"]
[2011,12,5,14,23,"foo"]
[2011,12,5,14,42,"bar"]
[2011,12,5,15,2,"foo"]
[2011,12,5,15,21,"foo"]
[2011,12,5,15,23,"foo"]
[2011,12,5,16,2,"foo"]
[2011,12,5,16,21,"foo"]
[2011,12,5,16,23,"foo"]
[2011,12,5,16,42,"bar"]
但是,当我使用以下开头键查询这些内容时:
[2011,12,5,14,16,"foo"]
和
的结束键[2011,12,5,16,60,"foo\ufff0"]
http://couchdb_host:5984/the_db/_design/cf/_view/errors?startkey=[2011,12,5,14,16,%22foo%22]&endkey=[2011,12,5,16,60,%22foo\ufff0%22]&group_level=6
我不断在结果中获得“bar”的值:
{"rows":[
{"key":[2011,12,5,14,22,"foo"],"value":2},
{"key":[2011,12,5,14,23,"foo"],"value":1},
{"key":[2011,12,5,14,42,"bar"],"value":1},
{"key":[2011,12,5,15,2,"foo"],"value":1},
{"key":[2011,12,5,15,21,"foo"],"value":2},
{"key":[2011,12,5,15,23,"foo"],"value":1},
{"key":[2011,12,5,16,2,"foo"],"value":1},
{"key":[2011,12,5,16,21,"foo"],"value":2},
{"key":[2011,12,5,16,23,"foo"],"value":1},
{"key":[2011,12,5,16,42,"bar"],"value":1}
]}
我在哪里摔倒?我希望忽略“bar”,并以“foo”开头的任何东西都要返回。这一切在纸上看起来都很简单!
线索?
答案 0 :(得分:3)
CouchDB返回的所有键的排序都高于(或等于)startkey和小于(或等于)endkey。 [2011,12,5,14,42,“bar”]的排序高于[2011,12,5,14,16,“foo”]因为42高于16并且排序低于[2011,12,5, 16,60,“foo \ ufff0”]因为42低于60。
此页面描述了密钥的排序方式:http://wiki.apache.org/couchdb/View_collation