“尽管我做了一个,但这个选择器没有可用的索引”

时间:2015-10-14 23:35:49

标签: cloudant

在我的数据中,我有两个字段,我想一起用作索引。它们是sensorid(任何字符串)和timestamp(yyyy-mm-dd hh:mm:ss)。

所以我使用Cloudant索引生成器为这两个做了一个索引。这是成功创建的,它显示为设计文档。

{
  "index": {
    "fields": [
      {
    "name": "sensorid",
    "type": "string"
      },
      {
    "name": "timestamp",
    "type": "string"
      }
    ]
  },
  "type": "text"
}

但是,当我尝试进行以下查询以查找时间戳高于某个值的所有文档时,我被告知选择器没有可用的索引:

{
  "selector": {
    "timestamp": {
      "$gt": "2015-10-13 16:00:00"
    }
  },
  "fields": [
    "_id",
    "_rev"
  ],
  "sort": [
    {
      "_id": "asc"
    }
  ]
}

我做错了什么?

1 个答案:

答案 0 :(得分:4)

在我看来,cloudant查询只允许对作为选择器一部分的字段进行排序。 因此,您的选择器应包含_id字段,如下所示:

   "selector":{
      "_id":{
         "$gt":0
      },
      "timestamp":{
         "$gt":"2015-10-13 16:00:00"
      }
   }

我希望这适合你!