sort findbyid all javascript node.js mongodb find mongoose

javascript - findbyid - mongoose projection



Mongoose.js: Encontrar usuario por nombre de usuario LIKE value (11)

Aquí mi código con expressJS:

router.route(''/wordslike/:word'') .get(function(request, response) { var word = request.params.word; Word.find({''sentence'' : new RegExp(word, ''i'')}, function(err, words){ if (err) {response.send(err);} response.json(words); }); });

Me gusta encontrar un usuario en mongoDb buscando un usuario llamado valor. El problema con:

username: ''peter''

es que no lo encuentro si el nombre de usuario es "Peter", o "PeTER" ... o algo así.

Así que quiero hacer como sql

SELECT * FROM users WHERE username LIKE ''peter''

Espero que entiendan lo que estoy pidiendo?

Corto: ''campo LIKE value'' en mongoose.js / mongodb


Bien. Solo para las personas que están buscando la respuesta que era, me gustó esto

var name = ''Peter''; model.findOne({name: new RegExp(''^''+name+''$'', "i")}, function(err, doc) { //Do your action here.. });


Deberías usar una expresión regular para eso.

db.users.find({name: /peter/i});

Tenga cuidado, sin embargo, que esta consulta no use índice.


Esto es lo que estoy usando.

module.exports.getBookByName = function(name,callback){ var query = { name: {$regex : name} } User.find(query,callback); }


La siguiente consulta encontrará los documentos con la secuencia de cadena requerida insensiblemente y con la ocurrencia global también

var name = ''Peter''; db.User.find({name:{ $regex: new RegExp(name, "ig") } },function(err, doc) { //Your code here... });


Tuve problemas con esto recientemente, uso este código y funciono bien para mí.

var data = ''Peter''; db.User.find({''name'' : new RegExp(data, ''i'')}, function(err, docs){ cb(docs); });

Usar directamente /Peter/i work, pero uso ''/''+data+''/i'' y no funciona para mí.


mangosta doc para encontrar. mongodb doc para regex.

var Person = mongoose.model(''Person'', yourSchema); // find each person with a name contains ''Ghost'' Person.findOne({ "name" : { $regex: /Ghost/, $options: ''i'' } }, function (err, person) { if (err) return handleError(err); console.log(''%s %s is a %s.'', person.name.first, person.name.last, person.occupation); });

Tenga en cuenta el primer argumento que pasamos a la función mongoose.findOne. "{" name ": {$ regex: / Ghost /, $ options: ''i''}}". "nombre" es el campo del documento que está buscando. "Fantasma" es la expresión regular. "i" es para una coincidencia insensible a mayúsculas y minúsculas. Espero que esto te ayudará.


si quiero consultar todo el registro en alguna condición, puedo usar esto:

if (userId == ''admin'') userId = {''$regex'': ''.*.*''}; User.where(''status'', 1).where(''creator'', userId);


collection.findOne({ username: /peter/i }, function (err, user) { assert(/peter/i.test(user.username)) })


db.users.find( { ''username'' : { ''$regex'' : req.body.keyWord, ''$options'' : ''i'' } } )


router.route(''/product/name/:name'') .get(function(req, res) { var regex = new RegExp(req.params.name, "i") , query = { description: regex }; Product.find(query, function(err, products) { if (err) { res.json(err); } res.json(products); }); });