在mongodb中你可以使用像
这样的命令db.sessions.distinct("Ip",{ 'Application': '123'})
将返回所选应用程序的所有唯一IP。如何通过Mongoid做到这一点?
我试图在distinct
函数中传递2个参数,但它失败,异常'ArgumentError: wrong number of arguments (2 for 1)'
答案 0 :(得分:1)
Mongoid中的区别是一个参数 - 您想要过滤的字段。因此,在您的情况下,您可以将where
子句与distinct
链接起来,如下所示:
YourModel.where(Application: '123').distinct(:Ip)
这将按字段Ip生成一个不同的YourModel集合,其中字段Application等于'123'。
答案 1 :(得分:-1)
请向您展示完全独特的查询。 我尝试使用用户集合的语法(3个名为Bob的文档):
db.users.distinct("_id", {name: "Bob"})
它的确有效:
[
ObjectId("5121792d499af102889f2576"),
ObjectId("5121792e499af102889f2577"),
ObjectId("5121792f499af102889f2578")
]
我的MongoDB版本是2.2.0