Как получить прямой доступ к MongoDB API из Mongoid? - PullRequest
7 голосов
/ 24 января 2011

Я хотел бы использовать addToSet метод MongoDB, но Mongoid в настоящее время пока не поддерживает это.Есть ли способ прямого доступа к драйверу MongoDB из моей модели Rails?

Ответы [ 3 ]

8 голосов
/ 25 января 2011

Я задал этот вопрос в Монгойской группе , и это был лучший ответ:

Предполагая, что ваш объект модели является 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.

0 голосов
/ 14 июня 2012

До Mongoid 2.4 включительно вы могли обращаться к объекту базы данных с помощью

db = Mongoid.master
0 голосов
/ 24 января 2011

Вы можете использовать гем 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)
...