Mongodb 在Fantom中有没有更干净的方法来迭代Mongo查询结果?
我正在编写一个web应用程序,并使用它访问Mongo DB实例。按照afMongo文档中的示例,我得到了需要迭代的查询结果。在一个简化的示例中,迭代如下所示Mongodb 在Fantom中有没有更干净的方法来迭代Mongo查询结果?,mongodb,fantom,Mongodb,Fantom,我正在编写一个web应用程序,并使用它访问Mongo DB实例。按照afMongo文档中的示例,我得到了需要迭代的查询结果。在一个简化的示例中,迭代如下所示 class MapListIterator { Void main(){ [Str:Obj?][] listOfMaps := [,] listOfMaps.add( ["12345":[ "id":12345, "c
class MapListIterator {
Void main(){
[Str:Obj?][] listOfMaps := [,]
listOfMaps.add(
["12345":[
"id":12345,
"code":"AU",
"name":"Australia"
]])
listOfMaps.each |Str:Obj? map| {
echo(map.keys)
keys := map.keys
keys.each {
echo(it)
echo(((Str:Obj?)map[it])["code"])
echo(((Str:Obj?)map[it])["name"])
}
}
}
}
我在中运行了这段代码,它工作正常,但我想知道这是否是一种更干净的方法来迭代结果。我不喜欢上面代码中的角色设置。还有,有没有更好的方法来编写嵌套的it块
编辑:
原来我把事情搞得太复杂了。下面是应用Steve的建议后代码的外观:
Str:Country mapOfCountries := [:]
mapOfCountries.ordered = true
listOfMaps := ([Str:Str?][]) collection.findAll
listOfMaps.each {
c := it["code"]
n := it["name"]
mapOfCountries.add(c, Country { code = c ; name = n })
}
我会重播结果并尽早分配地图。。。其中:
listOfMappedMaps:=([Str:[Str:Obj?]]][])listofmap
每个映射的列表{
地图:=它
地图,钥匙,每个{
echo(映射[it][“代码”])
echo(映射[it][“名称”])
}
}
下一步是使用,它允许您使用对象代替地图。谢谢。我想知道如何访问嵌套的“each”中的外部“it”。而且,早期的演员阵容也非常出色。我还得试试莫菲娅的方法。