我想问一下,上周是否有人对ScriptDB类型的等价物有问题。7月10日,当我执行关于数值的查询时,只有带有数值的查询才返回正确的结果。文件中说:
这意味着,如果有一个具有数值的对象,则可以查询该对象的字符串版本。例如,如果存储对象{a: 23},则可以查询{a:"23"},ScriptDb将找到前面的对象。
但是带有string参数的查询的后一个版本没有返回任何内容。现在看来还可以,这两个版本都像预期的那样工作。
最近有没有人注意到同样的问题?
发布于 2013-07-15 10:35:41
在您注意到的当天,有一个与按整数值索引和解决搜索有关的日志问题。
在问题跟踪器中提出了一项决议。
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
}
}https://stackoverflow.com/questions/17650122
复制相似问题