【问题标题】:Problems with ScriptDB Type EquivalencesScriptDB 类型等价问题
【发布时间】:2013-07-15 18:35:41
【问题描述】:

我想问上周是否有人对 ScriptDB 类型等效有问题。 7 月 10 日,当我执行有关数值的查询时,只有具有数值的查询才返回正确的结果。在文档中说:

这意味着如果你有一个带有数值的对象,你 可以查询相同的字符串版本。例如,如果您存储 对象 {a: 23},您可以在 {a: "23"} 上查询,ScriptDb 会找到 上一个对象。

但是带有字符串参数的查询的后一个版本没有返回任何内容。 现在似乎没问题,两个版本都按预期工作。

最近有没有人注意到同样的问题?

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    在您记录的当天记录了一个与索引和解决整数值搜索相关的问题。

    问题跟踪器中提出了解决方案。

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

    感谢您的耐心等待;我们相信根本问题现在已经解决。但是,我们没有追溯修复您在过去两天可能保存或重新保存的任何数据。您在此期间保存的任何数据都会安全存储,但如果数据类型不完全匹配,对这些对象的查询仍将失败。例如,属性 {id: 4074} 将匹配 {id: 4074}(数字),但不匹配 {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
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-07
      • 1970-01-01
      • 1970-01-01
      • 2018-07-02
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      相关资源
      最近更新 更多