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