是的,可以使用变量来执行查询。但请记住:键值必须存在于您要查询的对象中。在您的示例中,userChoice
不是 的属性myMapObject
,因此它不会匹配。
这是与ScriptDb 服务文档中的示例相关的示例。该findOlderThan()
函数接受在对象age
查询中使用的参数people
。这些people
对象有 4 个属性,type
、name
、age
和single
。因此,期望提取的查询people
必须引用这些属性中的一个或多个。由于 ScriptDb 不知道您存储在其中的对象,因此我们使用该type
属性作为识别对象类型的约定 - 我们在每个查询中都这样做。我们可以只查询age
,但也可以找到people
我们不感兴趣的非 对象。
function findOlderThan( age ) {
var db = ScriptDb.getMyDb();
var people = []; // array to hold results
// Find people with an age greater than given value.
var results = db.query({
type: 'person',
age: db.greaterThan(age)
});
while (results.hasNext()) {
var item = results.next();
people.push(item);
}
return people;
}
function test_findOlderThan() {
deleteAll(); // from developers.google.com/apps-script/guides/script-db/patterns#delete_all_items_in_the_database
loadDb();
Logger.log(JSON.stringify(findOlderThan(20))); // 3 results
Logger.log(JSON.stringify(findOlderThan(25))); // 2 results
Logger.log(JSON.stringify(findOlderThan(50))); // 1 result
Logger.log(JSON.stringify(findOlderThan(100))); // no result
}
function loadDb() {
var db = ScriptDb.getMyDb();
var item = db.save({
type: 'person',
name: 'fred',
town: 'Shelbyville',
age: 25,
single: true
});
item = db.save({
type: 'person',
name: 'joe',
town: 'Springfield',
age: 45,
single: false
});
item = db.save({
type: 'person',
name: 'sam',
town: 'Springfield',
age: 90,
single: true
});
}