CouchDB视图模式匹配组合键中的数字和Alpha

时间:2011-12-05 23:02:31

标签: views couchdb

到目前为止,我在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”开头的任何东西都要返回。这一切在纸上看起来都很简单!

线索?

1 个答案:

答案 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