У меня есть Author
и Book
модели.Mongoid/Mongodb и запросы на встроенные документы
Author
имеет много встроенных Books
.
Могу ли я запросить встроенный Books
, или мне нужно сначала получить Authors
, чтобы получить Books
?
У меня есть Author
и Book
модели.Mongoid/Mongodb и запросы на встроенные документы
Author
имеет много встроенных Books
.
Могу ли я запросить встроенный Books
, или мне нужно сначала получить Authors
, чтобы получить Books
?
Вы можете запросить вложенные документы, просто квалифицируйте имя. Теперь это вернет всех авторов, у которых есть книги, соответствующие вашему запросу.
Если автор определяются как имеющие много: книги (и книга вложенной :: документ)
@authors_with_sewid = Author.where("books.name" => "sewid").all
Вы бы тогда нужно перебрать автор и извлечь книги.
Хорошо, спасибо большое. Что делать, если у меня есть смесь встроенных и ссылочных документов, могу ли я также запросить ссылки на документы? Например, модель Author имеет поле creator, которое содержит идентификатор пользователя. Можно ли сделать «Author.where» («book.name» = «sewid»). И («creator.username» => «example»)?? Первая попытка не удалась. – sewid
После того, как они будут ссылаться на объекты, вам понадобится Join. И нет никаких союзников в земле монгодб. –
Лучшее, что нужно сделать в этом случае, - денормализовать ваши данные и сохранить имя пользователя-создателя вместе с автором. – Nader