en primer lugar, tomemos esta simple consulta como ejemplo:
ObjectId('62663def4e578b0a1cb482c5').valueOf();
salida en DataGrip v2021.3.1: {"$oid": "62663def4e578b0a1cb482c5"}
salida en Navicat para MongoDB v16.0.14: 62663def4e578b0a1cb482c5
salida en mongosh 1.5.0: ObjectId("62663def4e578b0a1cb482c5")
en segundo lugar, con el operador typeof , es decir: typeof ObjectId('62663def4e578b0a1cb482c5').valueOf(); , podemos ver el tipo de datos de la salida. son object tanto en DataGrip como en Mongosh, pero son string en Navicat para MongoDb.
Este es un problema obvio y problemático cuando los desarrolladores escriben consultas complejas, creo que debe haber tickets generados por un problema similar (pero no he encontrado ninguno).
¿Por qué es así? Podría deberse a una versión diferente del controlador mongoDB integrado en cada cliente, pero busqué y no encontré ningún documento oficial sólido. ¿Alguien podría ayudar en esto?