Я хотел бы использовать метод addToSet MongoDB, но Mongoid в настоящее время еще не поддерживает это. Есть ли способ прямого доступа к драйверу MongoDB из моей модели Rails?
Как получить прямой доступ к API MongoDB из Mongoid?
Ответы (3)
Я задал этот вопрос в группе монгоидов, и это был лучший ответ:
Предполагая, что ваш объект модели является Mongoid::Document, просто вызовите для него метод «db», чтобы получить дескриптор объекта Mongo::DB, который Mongoid использует под капотом.
Оттуда вы можете напрямую использовать API драйвера MongoDB Ruby.
Кроме того, вы можете получить доступ к коллекции записей, используя ModelName.collection.
db
отсутствует, а метод collection
включен!
- person Peter Ehrlich; 26.04.2013
Вы можете использовать гем 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)
До Mongoid 2.4 включительно вы могли получить доступ к объекту базы данных с помощью
db = Mongoid.master
MyModel.collection.database
, однако,
- person Peter Ehrlich; 26.04.2013