varios tipos insertar imagenes guardar embebidos documentos datos consultas complejas comandos actualizar mongodb

tipos - insertar varios documentos en mongodb



Duplicar un documento en MongoDB usando un nuevo_id (5)

En mongo shell: está bien

db.products.find().forEach( function(doc){db.products.insert( { "price":doc.price, "name":doc.name, "typeName":doc.typeName, "image":doc.image } )} );

Ok, supongo que esta es una pregunta tonta y probablemente tiene una respuesta simple.

¿Cómo puedo duplicar un documento en MongoDB, cambiando el _id del nuevo?

Imagine que tiene el documento original:

> var orig = db.MyCollection.findOne({_id: ''hi''})

Y ahora quiero otro documento en la colección con _id ''bye''.


Puede asignar un nuevo ObjectId al documento de copia. En el caparazón de mongo

var copy = db.collection.findOne(); for (var i = 0; i< 30; i++){ copy._id = new ObjectId(); db.collection.insert(copy); }


Puedes usar el siguiente código:

Ejecutar usando una sola línea:

db.collectionName.find({"_id" : ObjectId("5a4e47e0a21698d455000009")}).forEach(function(doc){var newDoc = doc; delete newDoc._id; db.collectionName.insert(newDoc); })

un formato estructural para la comprensión:

db.collectionName.find({"_id" : ObjectId("5a4e47e0a21698d455000009")}).forEach(function(doc){ var newDoc = doc; delete newDoc._id; db.collectionName.insert(newDoc); })


Simplemente cambie la identificación y vuelva a insertar.

> db.coll.insert({_id: ''hi'', val: 1}) > var orig = db.coll.findOne({_id: ''hi''}) > orig._id = ''bye'' bye > db.coll.insert(orig) > db.coll.find() { "_id" : "hi", "val" : 1 } { "_id" : "bye", "val" : 1 }


Una pequeña mejora a la respuesta @ 689

var copy = db.collection.findOne({},{_id:0}); for (var i = 0; i< 30; i++){ db.collection.insert(copy); }