En Oracle puedo:
INSERT INTO tbl_temp2 (fld_id) SELECT tbl_temp1.fld_order_id FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;¿Hay algún comando en mongodb como este?
Sí, con el marco de agregación puede ejecutar una canalización que usa el operador $out como medio para escribir los resultados de la consulta en otra colección.
Considere ejecutar la siguiente operación agregada:
db.tbl_temp1.aggregate([ { "$match": { "fld_order_id": { "$gt": 100 } } }, { "$project": { "fld_id": "$fld_order_id" } }, { "$out": "tbl_temp2" } ]) En la agregación anterior, el paso de la canalización $match actúa como un filtro en el flujo de documentos para permitir que solo los documentos coincidentes pasen sin modificar a la siguiente etapa de la canalización:
{ "$match": { "fld_order_id": { "$gt": 100 } } }, y es equivalente a la cláusula WHERE de SQL
WHERE tbl_temp1.fld_order_id > 100 La siguiente etapa de canalización $project selecciona/reforma cada documento en el flujo, como agregar nuevos campos o eliminar campos existentes:
{ "$project": { "fld_id": "$fld_order_id" } },es lo mismo que
SELECT tbl_temp1.fld_order_id AS fld_id y la etapa final del operador $out
{ "$out": "tbl_temp2" }escribe los documentos resultantes de la tubería de agregación en una colección, similar a
INSERT INTO tbl_temp2