如何从scriptDB查询数组值?

时间:2013-12-24 19:10:19

标签: javascript google-apps-script

我正在尝试使用scriptDb从主函数访问全局变量到处理函数。 在documentation instructions之后,我创建了一段类似于此的代码:

function showList(arrayList) {
   Logger.log("arrayList argument value = " + arrayList);
      var arrayToUse = {
        arrayName: 'theses',
        arrayValue: arrayList,
    };
    var record = db.save(arrayToUse);
    var scriptDbObject = db.query({arrayName: 'theses'});
    var arrayList = scriptDbObject.arrayValue;
    Logger.log("ShowList arrayList query value = " + arrayList);
    }

但是当我尝试查询插入的项目时,它不起作用:

enter image description here

参数arrayList没问题(如日志所示)。

我还尝试了其他代码,跟随我的相似 this stackoverflow question

function showList(arrayList) {
  Logger.log("arrayList argument value = " + arrayList);
  var record = db.save({arrayName: "savedArray", arrayValue: arrayList});
  var result = db.query({arrayName: 'thesesRequests'});
  if (result.hasNext()) {
    arrayList = result.next().data;
    }
  else {
    arrayList ["empty array", "empty", "array"];
  }
    Logger.log("ShowList arrayList query value = " + arrayList);

我得到了同样的undefined消息。

这里出了什么问题?

圣诞快乐,所有SoF社区的新年快乐!

1 个答案:

答案 0 :(得分:1)

你的第一个出现在标记上,除了你执行查询时需要在结果上使用next()运算符来获取实际的dbResult条目:

function showList(arrayList) {
   Logger.log("arrayList argument value = " + arrayList);
      var arrayToUse = {
        arrayName: 'theses',
        arrayValue: arrayList,
    };
    var record = db.save(arrayToUse);
    var scriptDbObject = db.query({arrayName: 'theses'});
    if (scriptDbObject.hasNext()) {
      var dbItem = scriptDbObject.next();
      var dbArrayList = dbItem.arrayValue 
      Logger.log("ShowList arrayList query value = " + dbArrayList);
    }
 }