Я только начинаю работать с MongoDB и Mongoid for Rails, и мне нужны некоторые советы о том, как правильно создать простую базу данных блогов.
В настоящее время я использую структуру ниже, но мне нужен способ запросить все комментарии, написанные данным пользователем (реляционный эквивалент БД будет Comment.where('user_id = ?', user_id)
).
Правильно ли это настроено, или я должен переместить комментарии в их собственный документ, а не вставлять их в посты (как я бы это делал в реляционной схеме БД)?
Спасибо за любые советы, спасибо.
Схема базы данных
post {
_id: (object id)
title: string
body: string
user_id: reference
comments: [
{ _id: (object id), body: string, user_id: reference },
{ _id: (object id), body: string, user_id: reference },
...
]
}
user {
_id: (object id)
name: string
}
В MongoDB мои соответствующие модели:
class Post
include Mongoid::Document
field :title
field :body
embeds_many :comments
references_one :user
end
class Comment
include Mongoid::Document
field :body
embedded_in :post
references_one :user
end
class User
include Mongoid::Document
field :name
references_many :posts
end