¿Hay alguna forma de agregar valores a través de la agregación como db.insert_one?
x = db.aggregate([{ "$addFields": { "chat_id": -10013345566, } }])Intenté esto pero este código no devuelve nada y los valores no se actualizan
quiero agregar los valores a través de la agregación porque la agregación es mucho más rápida que otras
documento de muestra:
{"_id": 123 , "chat_id" : 125} {"_id": 234, "chat_id" : 1325} {"_id": 1323 , "chat_id" : 335}Rendimiento esperado :
alternativa a db.insert_one() en agregación mongodb
Debe utilizar la etapa $merge para guardar la salida de la agregación en la colección.
Nota: Tenga mucho cuidado cuando use la etapa
$mergeya que puede reemplazar accidentalmente todo el documento en su colección. Lea la documentación completa de esta etapa antes de usarla.
db.collection.aggregate([ { "$match": { "_id": 123 } }, { "$addFields": { "chat_id": -10013345566, } }, { "$merge": { "into": "collection", // <- Collection Name "on": "_id", // <- Merge operation match key "whenMatched": "merge" // <- Operation to perform when matched } }, ])