解析仍然存在,但如何通过'index'查询

时间:2016-09-23 14:13:34

标签: javascript parse-platform

我发现Parse现在得到了Buddy平台的支持,但旧Parse网站上的所有论坛/帮助文件都不见了......

我想要做的是按行号/索引查询表中的一行。

我现在这样做了,但是我获取所有数据然后选择行似乎效率不高(尽管它工作正常):

var thisRow = Parse.Object.extend(GlobTable);
var query= new Parse.Query(thisRow);
query.descending('updatedAt');
query.find({
  success: function(results) {

  var object = results[RowNumberThatINeed];
  //etc using object

@Ran,谢谢!不知怎的,它不起作用,Parse会为每一行存储'1':1,1,1,1。但它可以保存所有其他数据。

var Object = Parse.Object.extend(LocTable);
var obj = new Object();

    obj.set("User", LocUser);
    obj.set("Happened", d);
    obj.set("Happy", b);
    obj.set("Learned",a);
    obj.set("ConnectedTo",c);
    obj.increment("rowIndex");
    obj.save({
success: function(obj) {

 updateDatabase();
 alert("Your data is saved");

},
error: function(obj, err) {
alert("Your data was not saved. Sorry..." + err);
}
});

1 个答案:

答案 0 :(得分:1)

您的解决方案可行,但当您的桌面增长时,您将遇到很多性能问题。

我建议您使用以下解决方案:

  1. 在GlobTable中添加另一个字段整数。此字段将为增量字段,并将存储您的行索引(让我们调用此字段 rowIndex
  2. 每次将新对象保存到此表时,请确保使用以下命令增加此字段:
  3. 
    
    object.increment("rowIndex");
    
    
    

    1. 现在您的查询应如下所示:
    2. 
      
      var thisRow = Parse.Object.extend(GlobTable);
      var query= new Parse.Query(thisRow);
      query.equalTo("rowIndex",RowNumberThatINeed);
      query.first().then(function(result){
        // do something with the result
      },function(error){
        // error handling
      });
      
      
      

      如果您希望事件获得更好的性能,可以在rowIndex上创建索引(在MongoDb中)。

      在我的代码片段中,我根据最佳实践使用Promises。

      我使用第一个而非查找,因为此索引总会有一个对象