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?
utiliser $regex
dans mongodb
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);
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})