如何使用MongoMapper查询 distinct ?我的疑问是:
subscribedToThread = Comment.where(:subscribe_thread => 1).all
但是这会返回许多具有相同user_id
的对象。我需要返回一个不同的user_id
。这可能吗?
答案 0 :(得分:7)
我认为您需要下载到ruby驱动程序才能执行此操作,因为我认为您无法使用MongoMapper本身执行此操作:
subscribedToThread = Comment.collection.distinct("user_id", {:subscribe_thread => 1})
在模型上调用集合方法会返回Ruby驱动程序直接提供的集合,因此您可以使用以下语法发出不同的查询:
collection.distinct(key, query = nil)
您可以阅读更多相关信息here
答案 1 :(得分:2)
是的,你可以这样做:
subscribedToThread = Comment.where(:subscribe_thread => 1).fields(:user_id).all.compact!.unique!
除了uniq!
之后,你将删除所有双打,然后compact!
所有nil
http://mongomapper.com/documentation/plugins/querying.html#fields
答案 2 :(得分:1)
试试这个
subscribedToThread = Comment.where(:subscribe_thread => 1).fields(:user_id).collect(&:user_id).uniq
它将显示uniq user_id的列表