2013-07-15 41 views
0

上週我想問問任何人是否有ScriptDB類型對等問題。 7月10日,當我執行有關數字值的查詢時,只有具有數值的查詢返回正確的結果。在文檔中說:ScriptDB類型等效問題

這意味着如果你有一個數值對象,你可以查詢字符串版本相同。例如,如果您存儲 對象{a:23},則可以在{a:「23」}上查詢,而ScriptDb將查找 上一個對象。

但是,帶字符串參數的查詢的後一版本沒有返回任何內容。 現在看起來沒問題,兩個版本都按預期工作。

最近有沒有人注意到同樣的問題?

回答

1

有一個登錄問題與索引和解決在您注意的日子通過整數值搜索有關。

問題跟蹤器中提出了一個解決方案。

https://code.google.com/p/google-apps-script-issues/issues/detail?id=2999

感謝您的耐心;我們相信潛在的問題現在已經解決。但是,我們沒有追溯修復您在過去兩天內可能保存或重新保存的任何數據。您在此期間保存的任何數據都會安全存儲,但如果數據類型不完全匹配,則對這些對象的查詢仍然會失敗。例如,屬性{id:4074}將匹配{id:4074}(number),但不匹配{id:'4074'}(字符串)或{id:true}(布爾測試)。

如果您需要查詢從最近兩天的數據沒有數據類型精確匹配,則需要重新保存由ScriptDb中檢索它們和重寫他們的地方,使用類似下面的示例函數中的記錄:

function resaveRecords() { 
    var db = ScriptDb.getMyDb(); 
    var records = db.query({}); // get all records 
    while (records.hasNext()) { // loop through records 
    var item = records.next(); 
    db.save(item);   // resave with the same ScriptDb ID 
    } 
}