如何查询与数组中对象的确切字段匹配的集合?
由于测试用例更明确,这里是要通过的测试。
a = Invitation.create(guests: [ Guest.new(player: 'bbb'), Guest.new(player: 'ccc') ])
b = Invitation.create(guests: [ Guest.new(player: 'ccc'), Guest.new(player: 'bbb') ])
c = Invitation.create(guests: [ Guest.new(player: 'bbb'), Guest.new(player: 'ccc'), Guest.new(player: 'ddd') ])
# Request to find invitation with bbb and ccc as player_id of guests, regardless the order.
result = Invitation.collection.find(...)
assert_equal result, [ a, b ]
我的用例是一个邀请系统,其中不存在相同的客人组合,因此当发送新邀请时,我需要检查是否有完全相同的客人(不管他们的顺序)。
注意:我使用一组 Guest 对象,因为它带有一些额外的数据。这是一个示例数据集(https://gist.github.com/anonymous/5507735)。