繁体   English   中英

Mongo db查询,接受任何用户输入并根据这些进行搜索

[英]Mongo db query , take any userinput and search according to those

我是 mongo db 的新手 3 天前得到了这个问题,努力完成但不幸的是不断失败我不明白用户输入的模式或模式是什么,我们如何在我们的代码中识别这些或者更确切地说是什么查询(使用 javascript )..请有人帮我

问题:

假设我们有一个书籍模式并在数据库中保存了一些书籍,现在我们必须发布一个帖子 api

\getParticularBooks 接受任何输入并将其用作获取满足该条件的书籍的条件,例如

如果 body 有 { name: “hi”} 那么你会获取这个名字的书

如果 body 有 { year: 2020} 那么你会在今年取书

或者可能两者同时

因此条件会根据您在请求正文中输入的内容而有所不同

您可以首先创建一个 function 来验证用户请求正文是否没有任何未在您的架构中定义的输入属性。 我会那样做

const verifyProperty = (user_request_body) => {
 const properties  = [list of your schema property];

 for(let i in properties){
  const string = properties[i]

  if(!(string in user_request_body)) 
   return false;
}
 return true;
}

现在,根据 verifyProperty function 的返回值,您可以发送查询或返回错误消息。

if(verifyProperty(req.body) == false){
 return res.json({message: "Invalid properties"})
}

const data = await Books.find(req.body);
return res.json({data})

为了使用等待,您的 function 必须是异步的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM