如何使用 Nodejs 在 MongoDB 中创建类似 %keyword% 的查询
How to create like %keyword% query in MongoDB using Nodejs
我正在开发一个 MEAN 应用程序并想实现一个搜索过滤器。我在下面的路线中传递搜索关键字如下
router.route("/places/search/:keyword")
.get(function (req, res) {
query = {};
if (req.params.keyword !== undefined) {
query = {
name: { '$regex': new RegExp("^" + req.params.keyword.toLowerCase(), "i") }
};
}
var response = {};
Place.find(query, function (err, data) {
if (err) {
response = { "error": true, "message": "Error fetching data" };
} else {
response = { "error": false, "message": data };
}
res.json(response);
});
});
上面的代码正在像 keyword%
那样搜索 returns 所有以传递的关键字开头的 name
的地方,但我想获取 name
包含 keyword
在开头、中间或结尾,类似于 MySQL 中的 %keyword%
。
router.route("/places/search/:keyword")
.get(function (req, res) {
query = {};
if (req.params.keyword !== undefined) {
query = {
name: new RegExp(req.params.keyword, 'i')
};
}
var response = {};
Place.find(query, function (err, data) {
if (err) {
response = { "error": true, "message": "Error fetching data" };
} else {
response = { "error": false, "message": data };
}
res.json(response);
});
});
查询像 mongodb 和节点 js
getSearch(collection, Name) {
var query = new RegExp(Name,"i")
return this.connect().then(db => {
return db.collection(collection).find({ "title": query}).toArray();
})
我正在开发一个 MEAN 应用程序并想实现一个搜索过滤器。我在下面的路线中传递搜索关键字如下
router.route("/places/search/:keyword")
.get(function (req, res) {
query = {};
if (req.params.keyword !== undefined) {
query = {
name: { '$regex': new RegExp("^" + req.params.keyword.toLowerCase(), "i") }
};
}
var response = {};
Place.find(query, function (err, data) {
if (err) {
response = { "error": true, "message": "Error fetching data" };
} else {
response = { "error": false, "message": data };
}
res.json(response);
});
});
上面的代码正在像 keyword%
那样搜索 returns 所有以传递的关键字开头的 name
的地方,但我想获取 name
包含 keyword
在开头、中间或结尾,类似于 MySQL 中的 %keyword%
。
router.route("/places/search/:keyword")
.get(function (req, res) {
query = {};
if (req.params.keyword !== undefined) {
query = {
name: new RegExp(req.params.keyword, 'i')
};
}
var response = {};
Place.find(query, function (err, data) {
if (err) {
response = { "error": true, "message": "Error fetching data" };
} else {
response = { "error": false, "message": data };
}
res.json(response);
});
});
查询像 mongodb 和节点 js
getSearch(collection, Name) {
var query = new RegExp(Name,"i")
return this.connect().then(db => {
return db.collection(collection).find({ "title": query}).toArray();
})