Pregunta El uso de la consulta $ regex mongodb en el nodo js no funciona



 Desde el nodo js, ​​estoy tratando de recuperar los documentos basados ​​en la palabra clave sin distinguir entre mayúsculas y minúsculas. Cuando intento directamente desde la consola mongo db, puedo ver el resultado.

db.users.findOne({"displayName":{$regex: /.*abc./, $options:"i"}})

Pero cuando intento lo mismo en el nodo js, ​​obtengo un resultado vacío.

var selector = { "displayName": {$regex: "/.*abc./", $options:"i"}}

esto es debido a la expresión regular no en javascript.
¿Puede alguien ayudarme en esto?


7
2018-02-18 12:24


origen


Respuestas:


los $regex el valor debe ser el patrón de cadena para hacer coincidir o un objeto de expresión regular. Al pasar un patrón de cadena, no incluye el / delimitadores como lo hace en su código node.js.

Entonces cualquiera de estos funcionaría en node.js:

var selector = {"displayName": {$regex: ".*abc.", $options:"i"}}

O

var selector = {"displayName": {$regex: /.*abc./, $options:"i"}}

12
2018-02-18 14:05



¿Podrías probar este? Funciona para mí.

var getValue='abc';
db.users.findOne({"displayName": new RegExp(regexValue, 'i')},function(err,res){if(err){console.log(err);}

else {console.log (res.length);} } )


7
2017-07-09 03:48