Cloudant:如何为" Sort"创建索引。功能?

时间:2014-12-04 17:55:39

标签: couchdb cloudant

我面临的问题是创建正确的索引以通过我的Cloudant数据库进行查询。我使用的JSON数据结构类似于下面的内容。



{
  "customer" : "123",
  "time" : "2014-11-20"
}




我想根据时间对文档进行排序。我使用的索引查询是:



curl -X POST 'https://<user>:<pass>@<user>.cloudant.com/<DB-name>/_index' -d '
{
  "index": { 
    "fields": [
      "customer", 
      "time"
     ] 
  } 
}'
&#13;
&#13;
&#13;

我正在使用的查询是:

&#13;
&#13;
curl -X POST 'https://<user>:<pass>@<user>.cloudant.com/<DB-name>/_find' -d '
{
  "selector": { 
    "customer" : "123"
  }, 
  "sort": [
    "time"
  ]
}'
&#13;
&#13;
&#13;

我得到的错误代码是&#34; no_usable_index&#34;。任何人都可以对此问题提供一些见解吗?

另外,如果时间格式如下,会有什么不同: &#34; 2014-11-20 11:50:00&#34;?基本上,我试图根据日期和时间进行排序。这可能吗?

1 个答案:

答案 0 :(得分:3)

错误消息告诉您没有索引来执行排序,或者至少找不到索引。为了帮助它找到一个,按时分类,然后按时分类:

curl -X POST 'https://<user>:<pass>@<user>.cloudant.com/<DB-name>/_find' -d '
{
  "selector": { 
    "customer" : "123"
  }, 
  "sort": [
    "customer",
    "time"
  ]
}'

此查询功能相同,但现在Cloudant Query将找到索引。

关于您关于其他时间格式的问题,时间字段仍将被视为字符串字段以进行排序。在您的情况下,这意味着您将获得预期的结果。