Как запросить коллекцию, которая соответствует точным полям объектов в массиве?Как запросить коллекцию, которая соответствует точным полям объектов в массиве
Поскольку тестовый пример более явный, вот тест, который нужно пройти.
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 ]
Мой случай использования является приглашение системы, где же сочетание гостей, которые не могут существовать, поэтому, когда новое приглашение отправляется, мне нужно проверить, если один с теми же самыми гостями (независимо от их порядка).
Примечание: Я использую массив гостевых объектов, так как он содержит некоторые дополнительные данные. Вот пример набора данных (https://gist.github.com/anonymous/5507735).
Можете ли вы привести пример записи из монго? db.Invitation.findOne() сделал бы трюк. – shargors
Я отредактировал сообщение, чтобы добавить пример набора данных (https://gist.github.com/anonymous/5507735). –