在我的数据中,我有两个字段,我想一起用作索引。它们是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"
}
]
}
我做错了什么?
答案 0 :(得分:4)
在我看来,cloudant查询只允许对作为选择器一部分的字段进行排序。 因此,您的选择器应包含_id字段,如下所示:
"selector":{
"_id":{
"$gt":0
},
"timestamp":{
"$gt":"2015-10-13 16:00:00"
}
}
我希望这适合你!