无法在BuildFire数据存储上搜索和更新

时间:2018-01-06 22:47:29

标签: buildfire

我正在尝试对我在BuildFire数据存储区中保存的一些数据运行searchAndUpdate操作。代码如下:

  function updateCategories(category) {
    var filter = {
      "displayPosition": {"$gte": category.displayPosition},
      "name": {"$not": category.name}
    };

    var updateTerms = {
      "$inc": {displayPosition: 1}
    };

    return Datastore.searchAndUpdate(filter, updateTerms, 'category');
  }

我正在使用的Datastore.searchAndUpdate函数只是一个包装器,它宣传了此方法的原始BuildFire版本。代码如下:

function searchAndUpdate(filter, record, tag) {
    var deferred = $q.defer();

    Buildfire.datastore.searchAndUpdate(filter, record, tag, function(err, status) {
      if (err) {
        deferred.reject(err);
      } else {
        deferred.resolve(status);
      }
    });

    return deferred.promise;
  }

每当我尝试运行此更新功能时,我总是收到400作为响应。这是我在控制台中看到的截图:

enter image description here

我已经在我的localhost和实际的Buildfire平台上尝试了这一点而没有运气。我也尝试按照此处显示的方式构建搜索条件(这是此方法的sdk wiki示例中显示的方式)以及常规搜索方法中显示的方式(使用" $ json。"搜索属性的前缀)。无论哪种方式我尝试它我收到相同的回应。我不确定我做错了什么,或者如果BuildFire结束时出现问题,但我没有收到任何错误消息,所以我不确定发生了什么。

1 个答案:

答案 0 :(得分:2)

过滤器错误,对于不相等的搜索,您需要使用“$ ne”而不是“$ not”。 您可以在https://github.com/BuildFire/sdk/wiki/Search-Operators

中查看所有搜索操作员