使用几个关键字searchmongodb

我使用节点js,mongoose,expression和mongodb。

我已经创build了一个简单的表单,在其中input您的全名,并在数据库中search并返回您的其他详细信息。

是否可以使用全名中的几个词进行search? 例如,如果用户想要search“abc xyz”,用户是否可以仅使用“abc”或“xyz”

这是我原来的路线:

app.get("/",function(req,res){ var name = req.query.name; details.findOne({fullname:name},function(err,foundAsked){ if(err){console.log("ERROR!!!");} else{res.render("Details.ejs",{foundAsked:foundAsked,name:name}); } }); }); 

有可能吗?如果是的话,那我该怎么实现呢?

你可以使用正则expression式来部分匹配某些字段,像这样

 const query = { fullname: { $regex: req.query.name, $options: 'i' } }; details.find(query, function(err, foundAsked){ ... }) 

i在查询中是为了使其不区分大小写。

在使用部分search的情况下,我会build议不要使用findOne因为这可能会误导用户只返回一个单一的结果,如果他/她types让我们说A

是的,你可以使用正则expression式:

 details.findOne({ fullname : /.*(?:abc|xyz).*/gi }, .....