鉴于Grails 2.3.8和Mongo 2.6.0以及此(简化)域类:
db.account.findOne()
{
"name":"Test Account",
"customer": {
"state": "CA"
}
}
其中每个帐户都有一个带有“state”字符串的customer子文档。要获得所有客户的所有州的列表,我认为可以这样做:
def states = Account.createCriteria().list {
projections{
distinct("customer.state")
}
}
但由于现有错误 - https://jira.grails.org/browse/GPMONGODB-397
,它无效有解决方法吗?
我可以这样做:
Account.collection.distinct("customer.state")
但是有更多的Grails-ish方法吗?
答案 0 :(得分:0)
您可以使用" Criteria.DISTINCT_ROOT_ENTITY"用于DISTINCT记录。
def users = Account..withCriteria {
resultTransformer Criteria.DISTINCT_ROOT_ENTITY
}