web-dev-qa-db-fra.com

Comment utiliser l'opérateur "LIKE" sur la mangouste?

J'ai un problème lorsque j'interroge à l'aide de mongoose.I coding suit this Mongoose.js: Trouver l'utilisateur par nom d'utilisateur LIKE valeur . Mais cela revient en blanc.

Ce mon code retourne vide.

 var promise = UserSchema.find({name: /req.params.keyword/ }).limit(5);

J'ai essayé ce retour vide semble.

var n = john; var promise = UserSchema.find({name: /n/ }).limit(5);

Mais j'ai essayé ça marche

 var promise = UserSchema.find({name: /john/ }).limit(5);

Pourquoi j'utilise variable puis retourne vide?

7
devnext

utiliser $regex dans mongodb 

comment utiliser regex

exemple 

select * from table where abc like %v%

en mongo

 var colName="v";
 models.customer.find({ "abc": { $regex: '.*' + colName + '.*' } },
   function(err,data){
         console.log('data',data);
  });

Votre requête ressemble à 

var name="john";
UserSchema.find({name: { $regex: '.*' + name + '.*' } }).limit(5);
17
kumbhanibhavesh

Vous pouvez utiliser l'objet RegExp pour créer une expression rationnelle avec une variable. Ajoutez l'indicateur «i» si vous souhaitez que la recherche soit insensible à la casse.

const mongoose = require('mongoose');
const User = mongoose.model('user');

const userRegex = new RegExp(userNameVariable, 'i')
return User.find({name: userRegex})
0
user3291025