我正在尝试对我保存在 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 作为响应。这是我在控制台中看到的屏幕截图:
我已经在我的本地主机和实际的 Buildfire 平台上尝试过这个,但没有运气。我还尝试按照此处显示的方式(这是此方法的 sdk wiki 示例中显示的方式)以及普通搜索方法中显示的方式(其中使用“$json.”)构建搜索条件。搜索属性的前缀)。无论哪种方式,我尝试它都会收到相同的响应。我不确定我做错了什么,或者 BuildFire 端是否有问题,但我没有收到错误消息,所以我不确定发生了什么。