MongoDB中,你可以使用命令狀mongoid不同的匹配
db.sessions.distinct("Ip",{ 'Application': '123'})
這將返回所有唯一的IP所選應用程序。如何通過Mongoid做到這一點?
我試圖通過2論點distinct
功能,但它的異常失敗'ArgumentError: wrong number of arguments (2 for 1)'
MongoDB中,你可以使用命令狀mongoid不同的匹配
db.sessions.distinct("Ip",{ 'Application': '123'})
這將返回所有唯一的IP所選應用程序。如何通過Mongoid做到這一點?
我試圖通過2論點distinct
功能,但它的異常失敗'ArgumentError: wrong number of arguments (2 for 1)'
顯示你完全不同的查詢,請。 我儘量遵循用戶集合語法(3個文檔與名爲Bob):
db.users.distinct("_id", {name: "Bob"})
和它的作品:
[
ObjectId("5121792d499af102889f2576"),
ObjectId("5121792e499af102889f2577"),
ObjectId("5121792f499af102889f2578")
]
我的MongoDB的版本是2.2.0
的不同之處在Mongoid需要一個參數 - 您希望過濾不同的字段。所以你的情況,你可以鏈接一個where
條款瓦特/ distinct
像這樣:
YourModel.where(Application: '123').distinct(:Ip)
在領域中的應用等於「123」這將通過實地葉產生不同YourModel的集合。
我知道它在mongodb中有效。 Mongoid框架的問題。仔細閱讀問題。 – Ph0en1x 2013-02-18 01:28:37
對不起)我想到MongoId,而不是框架。 也許這段代碼可以幫助:'Sessions.where(:Application => 123).distinct(:Ip)' – 2013-02-18 09:44:25
是的,目前我是這樣實現的。 – Ph0en1x 2013-02-18 10:34:31