2013-08-30 2 views
4

Я использую Mongoid для подключения к mongodb и нужна помощь с запросом.сборка запросов mongoid, где два столбца равны друг другу

У меня есть родительская модель, где у каждого родителя и ребенка есть имя.

Class Parent 
    field: :name 
    field: :child_name 
end 

Я мог бы разбить ребенка на другую модель и/или встроить в нее, но мои потребности в БД просты. Я хочу запросить все документы, где дочернее имя совпадает с именем родителя. (например, отец - Джефф, а сын - Джефф).

Попытался следующее, но это не сработало.

parent = Parent.where(name: :child_name) 

Не знаете, как это сделать с Монгоидом. Любая помощь очень ценится

ответ

6

Если вы предоставляете строку в Mongoid-х where(), он предполагает, что вы используете JavaScript, и запускает MongoDB родной $where, который является то, что вам нужно:

Parent.where("this.name == this.child_name")

+0

это было очень полезно ! любой шанс, что вы знаете, как включить дополнительную статью? я бы хотел добавить «AND this.active = t», но это дает мне ошибки. –

+0

заменен И с && и он работал. еще раз спасибо! –

Смежные вопросы