Mongoose.js: Find user by username LIKE value
I like to to go find a user in mongoDb by looking for a user called value. The problem with:
username: 'peter'
is that i dont find it if the username is "Peter", or "PeTER".. or something like that.
So i want to do like sql
SELECT * FROM users WHERE username LIKE 'peter'
Hope you guys get what im askin for?
Short: 'field LIKE value' in mongoose.js/mongodb
Solution 1:
For those that were looking for a solution here it is:
var name = 'Peter';
model.findOne({name: new RegExp('^'+name+'$', "i")}, function(err, doc) {
//Do your action here..
});
Solution 2:
I had problems with this recently, i use this code and work fine for me.
var data = 'Peter';
db.User.find({'name' : new RegExp(data, 'i')}, function(err, docs){
cb(docs);
});
Use directly /Peter/i
work, but i use '/'+data+'/i'
and not work for me.
Solution 3:
db.users.find( { 'username' : { '$regex' : req.body.keyWord, '$options' : 'i' } } )
Solution 4:
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);
});
});
Solution 5:
collection.findOne({
username: /peter/i
}, function (err, user) {
assert(/peter/i.test(user.username))
})