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 .