Я хотел бы использовать addToSet метод MongoDB, но Mongoid в настоящее время пока не поддерживает это.Есть ли способ прямого доступа к драйверу MongoDB из моей модели Rails?
Я задал этот вопрос в Монгойской группе , и это был лучший ответ:
Предполагая, что ваш объект модели является Mongoid :: Document, просто вызовите метод "db", чтобы получить дескриптор объекта Mongo :: DB, который Mongoid использует под капотом. http://rdoc.info/github/mongoid/mongoid/master/Mongoid/Collections/Cl... Оттуда вы можете напрямую использовать API драйвера MongoDB Ruby. http://api.mongodb.org/ruby/current/file.TUTORIAL.html#
Предполагая, что ваш объект модели является Mongoid :: Document, просто вызовите метод "db", чтобы получить дескриптор объекта Mongo :: DB, который Mongoid использует под капотом.
http://rdoc.info/github/mongoid/mongoid/master/Mongoid/Collections/Cl...
Оттуда вы можете напрямую использовать API драйвера MongoDB Ruby.
http://api.mongodb.org/ruby/current/file.TUTORIAL.html#
Кроме того, вы можете получить доступ к коллекции записей, используя ModelName.collection.
До Mongoid 2.4 включительно вы могли обращаться к объекту базы данных с помощью
db = Mongoid.master
Вы можете использовать гем mongo-ruby-driver из mongodb:
https://github.com/mongodb/mongo-ruby-driver
Проверьте метод обновления в API:
http://api.mongodb.org/ruby/1.2.0/Mongo/Collection.html#update-instance_method
И этот вариант может быть тем, что вы ищете для использования addToSet :
(Boolean) :upsert — default: +false+ — if true, performs an upsert (update or insert)