Class User
has_many :gifts
end
Class Gift
belongs_to :user
end
我想找到,如果一個或多個用戶有一個或更多的禮物是這樣的:計數> 0 mongoid標準
User.any_of(gift: > 0).count
如何纔是正確的查詢?
謝謝
Class User
has_many :gifts
end
Class Gift
belongs_to :user
end
我想找到,如果一個或多個用戶有一個或更多的禮物是這樣的:計數> 0 mongoid標準
User.any_of(gift: > 0).count
如何纔是正確的查詢?
謝謝
如果嵌入文檔
User.any_of(:gifts.exists => true)
會制定出藍色
如果不是的嵌入文檔
Perhap我想你需要這樣的
執行的東西users_has_gifts = User.includes(:receivers).map { |user|
user if user.receivers.exits?
}
恕我直言只的map-reduce:
mapper = %{
function() { emit(this.user_id, 1) }
}
reducer = %{
function(k, vals) {
var sum = 0;
vals.forEach(function(val) {
sum += val;
});
return sum;
}
}
Gift.collection.map_reduce(mapper, reducer, out: {inline: 1}, raw: true)
然後你就可以走了過來結果,並挑選你喜歡的。 如果你有很大的集合,並且你不希望它們以內聯的方式返回,那麼你可以使用:{replace:'collection_name'},然後你甚至可以鏈選擇器,如: .where(value。 gte => 2).limit(10) 我認爲你可以從這裏拿走它。
@cdesrosiers加入MongoDB – Viren
加入mongoid? :S – hyperrjas
也許你需要在用戶模型中嵌入禮物然後它可以工作 – Viren