在mongodb中,您可以使用类似的命令
db.sessions.distinct("Ip",{ 'Application': '123'})
其将返回所选应用程序的所有唯一ip。如何通过Mongoid做到这一点?
我试图在distinct
函数中传递2个参数,但失败了,出现异常'ArgumentError: wrong number of arguments (2 for 1)'
Mongoid中的Distinct有一个参数——您希望在其上筛选不同的字段。因此,在您的情况下,您可以将where
子句与distinct
链接起来,如下所示:
YourModel.where(Application: '123').distinct(:Ip)
这将按字段Ip生成不同YourModel的集合,其中字段Application等于"123"。
请显示完全不同的查询。我尝试使用用户集合(3个名为Bob的文档)遵循语法:
db.users.distinct("_id", {name: "Bob"})
它的工作原理:
[
ObjectId("5121792d499af102889f2576"),
ObjectId("5121792e499af102889f2577"),
ObjectId("5121792f499af102889f2578")
]
我的MongoDB版本是2.2.0