проблема с монгоидным запросом

Я пытаюсь добиться эквивалента этого в монгоиде (mongoid.org ORM):

 select * from parents 
 inner join children
 on parents.id = children.parent_id
 where children.created_at <= some_timestamp

Родитель встраивает дочерний элемент, Дочерний элемент принадлежит родителю

До этого момента у меня не было проблем: Parent.where(:child.exists => true), но я понятия не имею, как мне сделать эквивалент 'child.created_at'.lt => some_timestamp (недопустимо использовать метод на строках.)

Спасибо


person booya    schedule 10.07.2011    source источник


Ответы (1)


Mongoid использует внутренние временные метки UTC, чтобы работать с датой в запросе, вы можете сделать следующее:

:'child.created_at'.lt => Time.now.midnight.utc
person halfdan    schedule 10.07.2011
comment
По-видимому, что-то вроде этого: Parent.where(:child.exists =› true, 'child.created_at’.lt =› Time.now.midnight.utc) не будет работать, так как невозможно вызвать #lt на струне. Символы тоже не подойдут, потому что точка :child.created_at '.' там незаконно. Любые идеи? - person booya; 11.07.2011
comment
Ага, спасибо. Или альтернативно: 'child.creator_at'.lt. Совет про временные метки был полезен, так как мне просто пришлось его изменить :) - person booya; 11.07.2011