Por lo que veo todos los comandos operan en la misma base de datos en mongodb. Quiero hacer algo como esto:.¿Cómo inserto un registro de una base de datos mongo a otra?
db.mySourceCollection.find() forEach (función (x) {db.theDestinationCollection.save (x)});
donde mySourceCollection
está en liveDatabase
y theDestinationCollection
está en testDatabase
.
Gracias! Sabía sobre el uso, pero no habría pensado en persistir el estado en una variable. En mi humilde opinión, esperaría un método use() en db para el uso de fluidos, p. db.use ('sourceDb'). collectionA.do (db.use ('destDb'). – b7kich
Puede suceder que la base de datos tenga caracteres UTF-8. Como esto se ejecuta a través del cliente, si el cliente es el nativo (por ejemplo para Ubuntu, '$ mongo --version' =>' MongoDB shell version: 1.6.3') puede carecer de UTF-8 y luego la copia fallará. Si este es el caso y no quiere poner sucio en su servidor para recompilar un nuevo cliente, siempre puede recompilar en una máquina separada y hacer este trabajo a través de la red conectándose a un servidor remoto. Sin embargo, los datos fluirán del servidor al cliente y viceversa, por lo que puede ser lento. De todos modos con un cliente UTF-8 remoto, funciona !!! –