Class User
has_many :gifts
end
Class Gift
belongs_to :user
end
我想知道一位或多位用户是否有一件或多件礼物,例如:
User.any_of(gift: > 0).count
正确的查询如何?
谢谢
Class User
has_many :gifts
end
Class Gift
belongs_to :user
end
我想知道一位或多位用户是否有一件或多件礼物,例如:
User.any_of(gift: > 0).count
正确的查询如何?
谢谢
恕我直言,仅适用于 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)
然后您可以查看结果并选择您喜欢的结果。如果你有很大的集合,并且你不希望它们被内联返回,那么你可以使用 out: {replace: 'collection_name'},然后你甚至可以链接选择器,比如:.where(value.gte = > 2).limit(10) 我认为你可以从这里拿走。
如果嵌入文档
User.any_of(:gifts.exists => true)
会出人意料的
如果不是嵌入文档
也许我认为你需要执行这样的事情
users_has_gifts = User.includes(:receivers).map { |user|
user if user.receivers.exits?
}