Tengo mongo db datos como este,
{ "_id": { "$oid": "62bd29431e2e2feca0c53cd2" }, "inspectionType": "hai2", "interval": 1, "companyId": { "$oid": "62b4aee8e86962a28632a01a" }, "createdAt": { "$date": "2022-06-30T04:40:35.946Z" }, "updatedAt": { "$date": "2022-06-30T04:40:35.946Z" }, "__v": 0 }
La cadena de entrada del usuario es: inspección = 'Hai2' o 'hai2'
Tengo que encontrar ese documento usando arriba de la cadena. He usado debajo de la consulta pero obtuve una respuesta vacía.
return db.inspectionCollection .find({ inspectionType: inspection, companyId }) .sort({ updatedAt: -1 }) .lean(true) .catch((err: Error) => { logger.error(err); return []; });
Entonces, ¿qué formato de consulta exacto para obtener los documentos usando una cadena?
Sugeriría usar $regex
con opciones "im" que coincide con mayúsculas y minúsculas ( i
) y cadena completa (de principio a fin) ( m
).
db.collection.find({ inspectionType: { $regex: "hai2", $options: "mi" }, companyId: { "$oid": "62b4aee8e86962a28632a01a" } })
Ejemplo de parque infantil de Mongo
return db.inspectionCollection .find({ inspectionType: { $regex: inspection, $options: "im" }, companyId: /* Value with ObjectId type */ }) .sort({ updatedAt: -1 }) .lean(true) .catch((err: Error) => { logger.error(err); return []; });