Монгоид больше даты или с нулевым
У меня две модели
class Conversation
include Mongoid::Document
field :last_moderated_at, type: DateTime
has_many :messages
end
class Message
include Mongoid::Document
include Mongoid::Timestamps
end
Я хочу получить список всех сообщений, которые были созданы после даты модерации, или все из них, если дата модерации равна нулю
Я ожидал, что следующее сработает
conversation.messages.where(
:created_at.gte => conversation.last_moderated_at
)
Но, по-видимому, сравнение с нулем не удается (когда last_moderated_at == nil
)
У меня нет выбора, кроме как использовать if/else
или есть оператор MongoDB типа greater than
это также работает по сравнению с нулевыми датами?
2 ответа
Синтаксис правильный. Это работает на Mongoid версии 6, по крайней мере.
Я думаю, вам придется сделать что-то вроде этого:
conversation = Conversation.find 'some_id'
Message.where(
conversation: conversation,
:created_at.gte => conversation.last_moderated_at
)