[英]How to perform search in Node.js MongoDB
I am trying to perform search on my list in node js and my code below is subjected to that, 我正在尝试在节点js中的列表上执行搜索,下面的代码受此影响,
exports.searchlistbyfirstname = function (req, res) {
var params = req.params;
var record= db.collection('profile');
record.find( { $text: { $search: params.id} }, (err, result) => {
if (err){ return console.log(err)
}
if(result){
response = {status:'success',data:result};
} else{
response = {status:'fail'};
}
res.send(response);
});
};
I am trying to search firstname
and I am sure I got wrong. 我正在尝试搜索
firstname
并且我确定自己输入错误。
can anyone please help me 谁能帮帮我吗
You can try this query
to get your firstname
您可以尝试使用此
query
获取您的firstname
record.find({
firstname: {
$regex: params.id
}
}, (err, result) => {
if (err) {
return console.log(err)
}
if (result) {
response = {
status: 'success',
data: result
};
} else {
response = {
status: 'fail'
};
}
res.send(response);
});
To perform text search ensure first you have created text index for search field. 要执行文本搜索,请确保首先为搜索字段创建了文本索引。
like: 喜欢:
db.collection('profile').createIndex( { firstName: "text" } );
then you can perform text search on that filed(s). 然后您可以对该文件执行文本搜索。
// params.id should be like "shaishab"
// but better to use req.query.firstName instead of req.params.id
// and you should change your route for that
record.find({$text: {$search: params.id}}, (err, result) => {
if (err) {
console.log(err)
return res.status(400).send({status: 'fail', error: err});
}
if (result) {
response = {status: 'success', data: result};
} else {
response = {status: 'fail'};
}
res.send(response);
});
Or without create text index you can search firstName by using $regex
operator 或者没有创建文本索引,您可以使用
$regex
运算符搜索firstName
record.find({firstName: { $regex: req.params.id, $options: 'i' } }, (err, result) => {
if (err) {
console.log(err)
return res.status(400).send({status: 'fail', error: err});
}
if (result) {
response = {status: 'success', data: result};
} else {
response = {status: 'fail'};
}
res.send(response);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.