Class User
has_many :gifts
end
Class Gift
belongs_to :user
end
1 人以上のユーザーが次のような 1 つ以上のギフトを持っているかどうかを調べたい:
User.any_of(gift: > 0).count
正しいクエリはどうですか?
ありがとうございました
Class User
has_many :gifts
end
Class Gift
belongs_to :user
end
1 人以上のユーザーが次のような 1 つ以上のギフトを持っているかどうかを調べたい:
User.any_of(gift: > 0).count
正しいクエリはどうですか?
ありがとうございました
map-reduce のみの IMHO:
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?
}