Cloudant Query 2.0意外行为

时间:2016-05-27 21:41:42

标签: couchdb pouchdb cloudant

我使用以下函数创建索引:

function (doc) {
  if(doc.type === 'Property') {
    if(doc.Beds_Max) {
      try {
       index("Beds_Max", parseInt(doc.Beds_Max)); 
      }
      catch(err) {
        //ooopss
      }
    }
    if(doc.YearBuilt) {
      try {
       index("YearBuilt", parseInt(doc.YearBuilt));  
      }
      catch(err) {
        //ooopss
      }
    }
  }
}

使用cloudant设计文档 - >新搜索索引和构建索引后,我可以发出类似

的查询
"YearBuilt": [2010 TO Infinity]

但是,如果我尝试使用Cloudant查询查询相同的索引,我会看到奇怪的行为。如果我去Cloudant Dashboard - >查询并传递类似

的内容
    {"limit": 5,
    "selector": {
        "_id": {
            "$gt": null
        },
        "Beds_Max": {"$gte": 7}
    },
    fields: ["_id"]}

我看到数据传输出现大幅增长,即使是最不寻常的查询也会继续接收大量数据,这些查询只能返回不超过1或2的结果,然后挂起我的电脑,这样很可能是不对的。当我使用Pouchdb-find npm模块支持Cloudant 2.0 Query并发出与上面相同的选择器时,我会看到不一致的行为,例如有时它返回0行,有时它会给出ETIMEOUTERROR。如果我更改索引并排除parseInt,我可以使用相同的Pouchdb-find甚至Cloudant Dashboard->进行查询查询并获得结果,但在这种情况下,我失去了使用不等运算符的能力,这对我来说是不行的。

我愿意接受解决方案,甚至完全不同的功能,以达到理想的效果。

0 个答案:

没有答案