¿Es posible obtener todos los valores/valores actualizados donde hay una diferencia después de una llamada de updateOne()?
_.each(gameResult, function(gameResult){ bulk.find({"user" : gameResult.user, "section" : gameResult.section , "code" : gameResult.code}).upsert().updateOne(gameResult); })imagina que mi valor en la base de datos antes de la actualización es:
1, 1, 1, 1El resultado del juego es:
1, 2, 1 , 3Entonces mi base de datos está actualizada: 1, 2, 1, 3
¿Es posible obtener todos los valores que han cambiado? Entonces, ¿cómo puedo obtener mis dos objetos 2 y 3 porque los necesito en el código?
Está buscando findAndModify .
Esto realiza una actualización y al mismo tiempo devuelve el documento existente de la base de datos. De forma predeterminada, este método devuelve el documento antes de que se apliquen los cambios (este comportamiento se puede cambiar con la opción new:true ). De modo que puede comparar fácilmente el documento devuelto con su documento local para encontrar las diferencias.
Desafortunadamente, findAndModify no es compatible con las operaciones masivas, por lo que debe hacerlo documento por documento.