Inserimento / aggiornamento batch usando Mongoid?

Ho cercato su Google e tutti gli altri, ma non ho trovato la risposta. La domanda è:

Ciao, come posso inserire un batch con Mongoid in MongoDB?

È ansible inserire un array batch di hash utilizzando il metodo di inserimento del driver di ruby ​​mongo. Da qualsiasi class Mongoid, puoi chiamare la raccolta per accedervi.

batch = [{:name => "mongodb"}, {:name => "mongoid"}] Article.collection.insert(batch) 

Se si desidera inserire batch documenti Mongoid (modelli) anziché hash, chiamare il metodo as_document del modello prima di inserirlo nell’array:

 @page_views << page_view.as_document 

...

 PageView.collection.insert(@page_views) 

Puoi usare questo:

 books = [{:name => "Harry Potter"}, {:name => "Night"}] Book.collection.insert_many(books) 

E trovo che “insert” non funziona per me (Monogoid 5.1.3):

 NoMethodError: undefined method `insert' for #  Did you mean? insert_one insert_many inspect 

Questo è il codice sorgente di “lib / mongo / collection.rb”:

 # Insert the provided documents into the collection. # # @example Insert documents into the collection. # collection.insert_many([{ name: 'test' }]) # # @param [ Array ] documents The documents to insert. # @param [ Hash ] options The insert options. # # @return [ Result ] The database response wrapper. # # @since 2.0.0 def insert_many(documents, options = {}) inserts = documents.map{ |doc| { :insert_one => doc }} bulk_write(inserts, options) end 

Il metodo Model.create di Model.create può accettare una matrice per creare documenti.

Dai documenti mongolici:

 Person.create([ { first_name: "Heinrich", last_name: "Heine" }, { first_name: "Willy", last_name: "Brandt" } ]) 

https://docs.mongodb.org/ecosystem/tutorial/mongoid-persistence/