2016-09-23 42 views
0

我發現,解析現在由好友的平臺支持,但是從舊解析網站都走了所有的論壇/幫助文件...解析還活着,但如何通過「索引」

查詢什麼我想要做的是按行號/索引查詢表中的一行。

我現在做到這一點,但它似乎效率不高我得到的所有數據,然後選擇行(雖然它工作正常):

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

你的解決方案可以工作,但是當你的表會增長時你會遇到很多性能問題。

我的建議給您的是以下解決方案:

  1. 另一個字段添加到您的GlobTable 整數類型的。此字段將是漸進的領域,將存儲您的行索引(我們稱之爲領域的rowIndex
  2. 每次一個新的對象保存在該表中,請確保通過使用以下命令增加這一領域:

object.increment("rowIndex");

  • 現在,您的查詢應該如下所示:
  • 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。

    我用第一,而不是找到,因爲總是會有一個對象該指數

    +0

    這是偉大的!我會盡快嘗試。我永遠不會想到它..謝謝冉! – Remzo