如何使用grails从mongodb中找到不同的记录

时间:2014-01-13 13:05:55

标签: mongodb grails

我非常擅长grails。我正在运行的情况下,我需要从mongodb集合中找到不同的记录。我尝试了一些例子,但没有成功

以下代码为我提供了集合中的所有记录。但是我只需要使用“userName”作为不同的标准

的不同记录
def eventMyOrders = EventMyOrders.findAllByEventId( eventID,[sort: 'endEventDateTime', order: 'desc'])

向我提供“EventMyOrders”系列的所有订单。

如何使用distinct(或Group By)查找带有查询的不同“userName”的记录。任何帮助将不胜感激。提前致谢

1 个答案:

答案 0 :(得分:1)

如果您只想要一个不同用户名列表,则可以使用条件查询:

def criteria = EventMyOrders.createCriteria()
def eventsWithDistinctUserName = criteria.list {
    projections {
        distinct("username")
    }
}

其中"username"是EventMyOrders中用户名的属性名称。

如果你想要一个具有不同用户名的EventMyOrders列表,你可以使用HQL查询:

  EventMyOrders.executeQuery("select distinct username from EventMyOrders")

或者只是从Groovy方式的结果中筛选出不唯一的记录:

  EventMyOrders.list().unique {a,b -> a.username <=> b.username}