我想进行完整的动态搜索,当用户习惯于在搜索框中的书店用户界面中键入一个或两个图书字符串时,它应该从我的图书表中带来所有匹配值,这些匹配值可以是整个我的表.

 const searchObjects = req.query;
 const result =await modelbook.find({
   //this place is for query that i don't know how I should write
 });
 res.status(200).json({resultis: result});
})

图书模型具有这些特性

推荐答案

你应该用$regex.

const search = asyncWrapper(async (req, res) => {
   var { value } = req.query;

   const result = await modelbook.find({
     $or: [
       { name: { $regex: value, $options: "i" } },
       { price: { $eq: Number(value) ? +value : 0 } },
       { url: { $regex: value, $options: "i" } },
       { description: { $regex: value, $options: "i" } },
       { author: { $regex: value, $options: "i" } }
     ],
   });
   res.status(200).json({ resultis: result });
 })

Node.js相关问答推荐

在Node JS中获取控制台选项卡标题

带有apache Couch-db和Nano的推荐引擎:过滤特定用户的视图

如何在Angular jest测试中调用Nodejs的垃圾收集? node v20的测试速度慢且内存泄漏

在全局对象上声明的函数

suppress AWS SDK v2 弃用消息

加速 sequelize ORM 中的查询

module.exports=require('other') 和临时变量有什么区别?

一个非常奇怪的JavaScript heap out of memory问题

'{ id: string; 类型的参数}' 不可分配给FindOneOptions类型的参数

Handlebars:访问已被拒绝解析来自的属性,因为它不是其父级的自己的属性

如何使用 Node.js 将 base64 编码图像(字符串)直接上传到 Google Cloud Storage 存储桶?

为什么 Node 控制台不显示功能代码?

JavaScript 异步编程:promise 与生成器

在单独的模块中定义 Mongoose 模型

在 Node 中连接和缩小 JS 文件

fs.createWriteStream 不会立即创建文件?

- configuration.output.path:提供的值public不是绝对路径!使用 Webpack

将 Heroku App 连接到 Atlas MongoDB 云服务

找不到在 docker compose 环境中运行的 node js 应用程序的模块

Socket.IO 连接用户数