mongodb & hibernate中标准结果的差异



我们在grails 2.3.5应用程序中使用mongodb,没有hibernate。当在具有最少两个字段的条件中使用投影时,返回的结果与在hibernate条件中返回的结果不同。例如:

List usersList = User.withCriteria {
    projections {
        id()                          // For mongodb
        //property("id")              // For hibernate
        property('name', 'fullName')
    }
    def now = new Date()
    between('joinDate', now-365, now)
    maxResults(2)
}

考虑返回两个符合上述条件的实例:-

使用mongodb返回的结果将是:

[[1, 2], ['XYZ', 'ABC']]

而使用hibernate时返回的结果将是:

[[1, 'XYZ'], [2, 'ABC']]

我不确定这是通过实现还是这是一个bug。

谢谢你,

SA

MongoDB插件的哪个版本?这是过去的一个错误,但已修复,见

https://github.com/grails/grails-data-mapping/blob/master/grails-datastore-gorm-mongodb/src/test/groovy/org/grails/datastore/gorm/mongo/ProjectionsSpec.groovy L38

验证行为是否正确

插件的3.0.0版本修复了https://jira.grails.org/browse/GPMONGODB-294问题

最新更新