2

给定 Grails 2.3.8 和 Mongo 2.6.0,以及这个(简化的)域类:

db.account.findOne()
{
    "name":"Test Account",
    "customer": {
        "state": "CA"
    }
}

每个帐户都有一个带有“状态”字符串的客户子文档。要获得所有客户的所有状态的列表,我会考虑做这样的事情:

def states = Account.createCriteria().list {
    projections{
        distinct("customer.state")
    }
}

但由于现有的错误,它不起作用 - https://jira.grails.org/browse/GPMONGODB-397

有解决方法吗?

我可以做到这一点: Account.collection.distinct("customer.state") 但有没有更 Grails 的方式来做到这一点?

4

1 回答 1

0

您可以将“Criteria.DISTINCT_ROOT_ENTITY”用于 DISTINCT 记录。

def users = Account..withCriteria {
        resultTransformer Criteria.DISTINCT_ROOT_ENTITY
}
于 2014-11-25T17:02:34.907 回答