Quiero actualizar un campo específico con el resultado de una función de JavaScript personalizada que tiene argumentos de otros valores de campo en el documento de MongoDB. Esta es mi base de datos. Yo uso la versión MongoDB 5.0.5.
{ "_id": { "$oid": "61bacd748364a864118dcfeb" }, "time": "14:24:04", "lat": "6.406405", "lon": "27.386247", } { "_id": { "$oid": "61bacd748364a864118dcfec" }, "time": "14:24:04", "lat": "6.406405", "lon": "27.386247", }...Quería agregar nuevos campos ("lat_G" y "lon_G") que se calculan con valores de "lat" y "lon" en cada documento. Entonces, hice una función llamada "placeonGrid" que necesita 3 argumentos. Cuando pongo números directamente en la función, funciona. Sin embargo, no funciona cuando se utilizó la expresión para valores de otros campos. Muestra "NaN". Este es mi código.
db.collection(collectionName).updateMany( {}, [{ $set: { lat_G: placeonGrid("$lat", "$lon", gridSize).lat_out, lon_G: placeonGrid(6.406405, 27.386247, gridSize).lon_out } }] );El resultado es el siguiente.
{ "_id": { "$oid": "61bacd748364a864118dcfeb" }, "time": "14:24:04", "lat": "6.406405", "lon": "27.386247", "lat_G": NaN, "lon_G": "27.12345", }