2012-07-06 38 views
0

我尝试使用新的Google应用程序脚本数据库,并且无法找出特定类型的查询。从新的Google脚本数据库查询

找到员工434是否具有20050101之后颁发的“QUAL 1”资质的最佳方法是什么?我已经在下面列出了他的记录。

{ 
     "id": 434, 
     "qualifications": [ 
      { 
       "pathway": "A", 
       "name": "QUAL1", 
       "issueDate": 20060330, 
       "agencyName": "STATE OFFICE 1" 
      }, 
      { 
       "pathway": "B", 
       "name": "QUAL2", 
       "issueDate": 20090305, 
       "agencyName": "STATE OFFICE 2" 
      } 
     ], 
     "name": { 
      "last": "SMITH", 
      "first": "JOHN" 
     }, 
     "type": "hr" 
    } 
+0

当我以为Google发布Google Goggle相关的东西时,我很兴奋,然后当我想起他们重新命名它们时,我想了两次...... – TheZ 2012-07-06 20:11:01

回答

1

我希望我理解正确的话:

function test() { 
    var db = ScriptDb.getMyDb(); 
    var result = db.query({id: 434}) 
    var quals = result.next().qualifications; 
    var hasQual = false; 
    for (var i = 0; i < quals.length; i++) { 
    if (quals[i].name == 'QUAL1' && quals[i].issueDate > 20050101) { 
     hasQual = true; 
     break; 
    } 
    } 
    Logger.log(hasQual); 
} 
+0

感谢AdamL,那就是诀窍。有可能找到数组内的值,而不必遍历数组?例如,如果我想查询每个在其记录中具有“QUAL1”值的所有人。 – JKWA 2012-07-07 16:29:47

+0

不是我所知道的,至少不是你已经建立的数据库结构(属性限定是一个对象数组)。但我可能是错的,我在这方面很新颖。如果我设置这个数据库,我会为他的资格单独记录 - 一个员工的基本数据记录(如姓名等),然后再记录一次,以便查询。 – AdamL 2012-07-07 20:09:01

0

这是目前不可能建立一个查询,查找数组内的值。您可以在issue tracker上提交该功能请求。