Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 为什么GORM为我的列表属性返回嵌套数组?_Mongodb_Grails_Gorm - Fatal编程技术网

Mongodb 为什么GORM为我的列表属性返回嵌套数组?

Mongodb 为什么GORM为我的列表属性返回嵌套数组?,mongodb,grails,gorm,Mongodb,Grails,Gorm,我有以下域对象: class Foo { List<Bar> bars static hasMany = [bars: Bars] static mapWith = 'mongo' } class Bar { Foo foo static belongsTo = [foo: Foo] static mapWith = 'mongo' } 以及控制器中的以下代码: def foo = Foo.findAll() def bars = foo.bars 为什么条形图

我有以下域对象:

class Foo {
 List<Bar> bars

 static hasMany = [bars: Bars]
 static mapWith = 'mongo'
}

class Bar {
 Foo foo

 static belongsTo = [foo: Foo]
 static mapWith = 'mongo'
}
以及控制器中的以下代码:

def foo = Foo.findAll()
def bars = foo.bars
为什么条形图是嵌套数组

我得到了类似:['bar1','bar2','bar3'] 我期待类似于['bar1'、'bar2'、'bar3'的东西]

更多信息:

Grails 2.4.3 mongodb 3.0.2 冬眠3.6.10.17
问题是我正在处理findAll返回的对象上的.bar。我把它改成findOne,一切都按预期进行

解决方案:

def foo = Foo.findOne() // was: def foo = Foo.findAll()
def bars = foo.bars

另外,当我调试和检查对象“foo”时,它在“bar”属性中有正确的东西,也就是说,它有一个带有bar对象的简单数组,但是当我执行foo.bar时,会发生一些真正的f-up,它在另一个数组中返回该数组。我看不到任何证据表明任何数组都涉及到任何地方。您是使用单词数组作为列表的同义词,还是在某处确实看到了数组?区别是相关的。@JeffScottBrown没有同义词,当我在调试时检查“bars”时,我看到数组的那一刻,它包含和数组中的1项,第一项是实际的bars数组,这是否回答了您的问题?顺便说一下,谢谢!它确实回答了我的问题。我不知道数组可能来自哪里,除非这是mongo的东西。我本以为会有实现java.util.List的东西。对不起,我帮不了你。如果你认为有漏洞,提交一份JIRA,我们会看一看。我只是重新阅读了原始帖子。你说的几乎是不可能的。您确定bars属性引用的是数组而不是ArrayList或其他类型的列表吗?数组是一种根本不同的类型,没有意义,这就是我之前要求澄清的原因。
def foo = Foo.findOne() // was: def foo = Foo.findAll()
def bars = foo.bars