"There is no index available for this selector" 尽管我做了一个

"There is no index available for this selector" despite the fact I made one

在我的数据中,我有两个字段想一起用作索引。它们是 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"
    }
  ]
}

我做错了什么?

在我看来,cloudant 查询只允许对属于选择器的字段进行排序。 因此,您的选择器应该包含 _id 字段并且看起来像:

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

希望这对你有用!