【发布时间】:2021-05-22 13:29:39
【问题描述】:
我想从文档中的两个属性(列)“firstname”和“lastname”中查找一个词。下面的代码在从多个属性中查找时没有给出响应。我是 mongo db 的新手,请让我知道我的错误及其可能的解决方案。
router.get('/search/:user', (req, res) => {
const searchField = new RegExp(req.params.user, 'i');
User.find({ firstname: { $regex: searchField }, lastname: { $regex: searchField } })
.then((data) => {
res.json(data);
})
.catch((error) => {
console.log(error);
});
});
当我传递一个属性时它正在工作。我怎样才能同时从 'firstname' 和 'lastname' 中找到。
【问题讨论】:
-
您是要查找包含在任一属性中的单词还是必须同时出现在这两个属性中?
-
任一属性。 @亚历杭德罗
-
是的,你需要的是 $or 操作如下:find({ $or: [ {Query1}, {Query2} ] })
标签: node.js database mongodb express mongoose