Я пытаюсь экспериментировать с mongodb, mongoid и rails. У меня есть простая модель задач и комментариев в Rails, где комментарии встроены в задачи. Теперь у Task есть атрибут comment_count. Есть ли способ увеличить счетчик, а также добавить новый комментарий за один вызов.
Модель задачи:
class Task
include Mongoid::Document
field :name
field :desc
field :comment_count, type: Integer, default: 0
embeds_many :comments
end
Модель комментария:
class Comment
include Mongoid::Document
field :entry
embedded_in :task
end
Ниже приведена операция, которую я хочу выполнить за один вызов.
1.9.3p194 :025 > task.comments.push(Comment.new(entry: "This is a comment"))
=> [#<Comment _id: 509e1708a490b3deed000003, _type: nil, entry: "First comment">, #<Comment _id: 509e1716a490b3deed000004, _type: nil, entry: "Second comment">, #<Comment _id: 509e1aa3a490b3deed000005, _type: nil, entry: "This is a comment">]
1.9.3p194 :026 > task.inc(:comment_count, 1)
=> 3
На самом деле я намереваюсь использовать несколько модификаторов обновления, таких как $inc, $push, $pop и т. д., в одном вызове обновления. Подобно тому, что мы можем сделать непосредственно в оболочке mongo.
Пожалуйста помоги. Спасибо