Collections 删除ATL ATLAS转换语言中每个集合的重复项

Collections 删除ATL ATLAS转换语言中每个集合的重复项,collections,duplicates,eclipse-emf,metamodel,Collections,Duplicates,Eclipse Emf,Metamodel,我有一组包含字段的文档(NoSql文档),每个字段包含一个键,如下面的元模型所示: 我的问题:如何从所有文档中仅获取uniques密钥,我使用以下代码尝试了一个助手: helper context MDB_metamodel!collection def: MongoToSql1(): String='\n------------------------------------ \n -- ********* Creation of table '+self.name+ ' **'+'\n\n

我有一组包含字段的文档(NoSql文档),每个字段包含一个键,如下面的元模型所示:

我的问题:如何从所有文档中仅获取uniques密钥,我使用以下代码尝试了一个助手:

helper context MDB_metamodel!collection def: MongoToSql1(): 
String='\n------------------------------------ \n -- ********* Creation of table '+self.name+ ' **'+'\n\n'+
    'CREATE TABLE `' + self.name + '` ( \n' 
            
    +self.document->asSequence()->
    iterate(d;acc:String=''|acc+ if acc='' then acc+d.field.asSet()->
    collect(f|f.key.MongoToSql12()) else ', \n'  + if  d.field.asSet()->
    collect(f|f.key.MongoToSql12()) <> acc then d.field.asSet()->
    collect(f|f.key.MongoToSql12()) else ''  endif endif)
    ;
helper上下文MDB_元模型!集合定义:MongoToSql1():
字符串='\n------------------------------------\n-->*******创建表'+self.name+'**'++'\n\n'+
“创建表”`+self.name+`(\n”
+self.document->asSequence()->
迭代(d;acc:String=''| acc+如果acc='',则acc+d.field.asSet()->
collect(f | f.key.MongoToSql12())else',\n'+如果d.field.asSet()->
收集(f | f.key.MongoToSql12())acc然后收集d.field.asSet()->
collect(f | f.key.MongoToSql12())else“”endif endif)
;