È possibile eseguire una query e restituire i documenti incorporati?Restituisci documenti incorporati nella query
Attualmente, ho:
class Post
include MongoMapper::Document
many :comments
end
class Comment
include MongoMapper::EmbeddedDocument
belongs_to :post
key :author
key :date
key :body
end
Ecco una domanda che è quasi arrivati:
Post.all("comments.date" => {"$gt" => 3.days.ago})
Ciò restituirà tutti gli oggetti post, ma non i commenti. Immagino di poter fare qualcosa del tipo:
Post.all("comments.date" => {"$gt" => 3.days.ago}).map(&:comments)
Ma questo restituirebbe tutti i commenti dai post. Mi piacerebbe avere tutti i commenti che hanno incontrato questa condizione. Forse Comment
non dovrebbe essere incorporato.
Pensi che sarebbe meglio inserire i commenti nella propria collezione? – vrish88
Onestamente dipende dalla messa a fuoco della tua app. Se la tua app riguarda principalmente i commenti, forse. Tuttavia, ci sono anche altre soluzioni da considerare. Ad esempio, è possibile creare una raccolta limitata de-normalizzata denominata "commenti" che ha semplicemente memorizzato gli ultimi, oh, 100 o più commenti in una raccolta separata. Quindi è possibile visualizzare tale feed quando necessario, ma visualizzare altrimenti il feed Post. I sistemi NoSQL incoraggiano la sperimentazione nella progettazione dei dati, trova ciò che funziona meglio per te! –