mongoid与匹配不同

时间:2013-02-17 21:42:03

标签: mongodb mongoid

在mongodb中你可以使用像

这样的命令
db.sessions.distinct("Ip",{ 'Application': '123'})

将返回所选应用程序的所有唯一IP。如何通过Mongoid做到这一点?

我试图在distinct函数中传递2个参数,但它失败,异常'ArgumentError: wrong number of arguments (2 for 1)'

2 个答案:

答案 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