Многоключевая индексация в рельсах монгоид

Я хочу хранить данные в этом формате.

{
 "_id": ObjectId(...)
 "title": "Grocery Quality"
 "comments": [
    { author_id: ObjectId(...)
      date: Date(...)
      text: "Please expand the cheddar selection." },
    { author_id: ObjectId(...)
      date: Date(...)
      text: "Please expand the mustard selection." },
    { author_id: ObjectId(...)
      date: Date(...)
      text: "Please expand the olive selection." }
 ]
}

Я запутался, как добиться этого формата для моих данных.

Я использую монгоид; Mongoid поддерживает индексирование нескольких клавиш?

Как можно использовать Mongoid для достижения желаемого формата и поведения?

1 ответ

Я не уверен, правильно ли я понял ваши сомнения, но поскольку я не могу комментировать, я отвечаю сразу. Если это не то, что вы просили, пожалуйста, объясните немного больше =)

У вас есть ваша модель с теми полями, которые вы написали ранее, я назову это Пост модель. Для комментариев к нему я бы предложил вам создать еще один комментарий к модели и добавить его в модель Post:

class Post
  field: title
  embeds_many :comments
end

class Comment
  field :date
  field :text
  has_one :author
  embedded_in :post
end

И для индексации комментариев к модели Post вы можете сделать следующее:

index({ :"comments.updated_at" => 1 })
Другие вопросы по тегам