À partir du nœud js, j’essaie de récupérer les documents en fonction du mot clé sans distinction de casse. Lorsque j'essaie directement depuis la console mongo db, je peux voir le résultat.
db.users.findOne({"displayName":{$regex: /.*abc./, $options:"i"}})
Mais quand j'essaie la même chose dans le nœud js, le résultat est vide.
var selector = { "displayName": {$regex: "/.*abc./", $options:"i"}}
est-ce dû à une expression régulière pas en javascript?.
Quelqu'un peut-il m'aider s'il vous plaît dans ce domaine.
La valeur $regex
doit être le modèle de chaîne à rechercher ou un objet d'expression régulière. Lorsque vous transmettez un modèle de chaîne, vous n'incluez pas les délimiteurs /
comme vous le faites dans votre code node.js.
Donc, l’un ou l’autre pourrait fonctionner dans node.js:
var selector = {"displayName": {$regex: ".*abc.", $options:"i"}}
OR
var selector = {"displayName": {$regex: /.*abc./, $options:"i"}}
pourriez-vous s'il vous plaît essayer celui-ci, cela fonctionne pour moi.
var getValue='abc';
db.users.findOne({"displayName": new RegExp(regexValue, 'i')},function(err,res){if(err){console.log(err);}
else {console.log (res.length);} } )
Dans la console mongodb Essayez cette requête
db.users.findOne ({"displayName": {$ regex: ". * abc", $ options: "i"}})
et dans nodejs var sélecteur = utilisateurs.find ({"displayName": {$ regex: ". * abc", $ options: "i"}})
ici utilisateurs = est un nom de collection