node many insertmany example ejemplo collection mongodb

many - MongoDB: inserción masiva(Bulk.insert) vs inserción múltiple(inserción([...]))



pymongo insert (2)

@Dummy tiene razón en que las operaciones masivas son generalmente más rápidas que las inserciones individuales, sin embargo, a partir de la versión 2.6 y superior, la inserción de múltiples documentos con collection.insert es solo azúcar sintáctica para un BulkWrite . Si establece el indicador ordered en falso, el rendimiento debe ser idéntico a un inserto masivo desordenado:

db.collection.insert(<document array>,{ordered:false})

Esta operación devolverá un BulkWriteResult , vea más detalles en la documentation .

¿Hay alguna diferencia entre una inserción masiva frente a la inserción de varios documentos ?

var bulk = db.items.initializeUnorderedBulkOp(); bulk.insert( { item: "abc123", defaultQty: 100, status: "A", points: 100 } ); bulk.insert( { item: "ijk123", defaultQty: 200, status: "A", points: 200 } ); bulk.insert( { item: "mop123", defaultQty: 0, status: "P", points: 0 } ); bulk.execute();

VS

db.collection.insert( <document or array of documents> )

¿Hay uno que es más rápido?


Sí, hay diferencia. Con operaciones a granel (siempre), solo necesita ir a la base de datos una vez y realizar la operación en lotes de registros, luego volver a la aplicación. Con inserciones individuales, tendrá que ir a la base de datos, hacer la inserción y luego volver a la aplicación, y repetirá este proceso para cada operación de inserción que le indique a la base de datos. Así que las inserciones individuales son muy lentas en comparación con las operaciones a granel. Es como comprar alimentos, si tiene todo lo que necesita para comprar, puede comprarlos todos en un solo viaje (inserto a granel), pero si para cada artículo, debe ir a la tienda para comprarlo y luego conducir. En casa, luego conduzca de regreso a la tienda para comprar otro artículo, entonces no es muy eficiente (como las inserciones individuales)

Nota: aunque, al interactuar con MongoDB utilizando el shell, solo necesita lidiar con una función de insert para inserciones masivas e individuales, debe hacer una distinción entre las insertOne() e insertMany() cuando se utilizan las API del controlador MongoDB. Y nunca debe llamar a insertOne() dentro de un bucle (razón: vea mi analogía de compras de comestibles más arriba).