Czy można wykonać zapytanie i zwrócić osadzone dokumenty?Zwróć dokumenty osadzone w zapytaniu
Obecnie mam:
class Post
include MongoMapper::Document
many :comments
end
class Comment
include MongoMapper::EmbeddedDocument
belongs_to :post
key :author
key :date
key :body
end
Oto zapytanie, które jest prawie tam:
Post.all("comments.date" => {"$gt" => 3.days.ago})
ta zwróci wszystkie obiekty post, ale nie w komentarzach. Chyba mógłbym zrobić coś takiego:
Post.all("comments.date" => {"$gt" => 3.days.ago}).map(&:comments)
Ale to by zwróciło wszystkie komentarze ze stanowisk. Chciałbym uzyskać wszystkie komentarze, które spełniły ten warunek. Być może Comment
nie powinien być osadzony.
Czy uważasz, że lepiej byłoby umieścić komentarze we własnej kolekcji? – vrish88
Szczerze mówiąc, zależy to od centrum Twojej aplikacji. Jeśli Twoja aplikacja dotyczy głównie komentowania, być może. Istnieją jednak również inne rozwiązania, które należy rozważyć. Na przykład możesz stworzyć demodulowaną kolekcję z ograniczeniami o nazwie "komentarze", która po prostu zapisuje ostatnie, około 100 komentarzy w osobnej kolekcji. Następnie możesz wyświetlać ten kanał, gdy jest to konieczne, ale w przeciwnym razie wyświetlać treść wiadomości. Systemy NoSQL zachęcają do eksperymentowania w projektowaniu danych, znajdowania najlepszych rozwiązań dla Ciebie! –