/ / Mongoid 3.0.0 undefined метод `master 'для Mongoid: Модуль - монгоїд

Mongoid 3.0.0 undefined method `master 'для Mongoid: Модуль - моноїд

 Mongoid.master.collection("seq").find_and_modify({
:query  => {:_id   => self.class.name},
:update => {"$inc" => {:next => 1}},
:new    => true,
:upsert => true
})["next"]

Він добре працює в монгоїді 2.4.9, але коли я використовую mongoid 3.0.0, я отримав помилку

NoMethodError in PostsController#new

undefined method `master" for Mongoid:Module

Mongoid 3.0.0 не підтримує Mongoid.master?

Відповіді:

3 для відповіді № 1

Оскільки Mongoid 3.0.0 використовувався Moped, а не драйвер Mongo Ruby, то старий API не може викликати.

Ви можете спробувати це:

Mongoid::Sessions.default.command({:findAndModify => "seq",
:query  => { :_id => self.class.name },
:update => { "$inc" => { :next => 1 } },
:upsert => true,
:new    => true })

І ви можете використовувати цю дорогоцінну камеру, щоб зробити функцію автоматичного збільшення ідентифікатора: https://github.com/huacnlee/mongoid_auto_increment_id