Estoy tratando de reparar una base de datos mongodb donde en algunos de los ObjectId de type_id se insertó, intenté usar expresiones regulares pero esto no funciona
find({"type_id":{$regex:/ObjectId\(.*\)/}})
¿Cualquier sugerencia?
Versión sencilla:
db.foo.find({"type_id": {$type: "objectId"}});
Usando la canalización agregada. Prefiero las canalizaciones porque a medida que crece la complejidad de su expresión, no se vincula con el conjunto de características más antiguo y más pequeño de find
:
db.foo.aggregate([ { $match: {$expr: {$eq: [{$type:"$type_id"}, "objectId"]} }} ]);
Mire https://docs.mongodb.com/manual/reference/operator/query/type para encontrar los valores de cadena devueltos por $type
.