MongoDB模糊查询,Next.js查询操作

这篇博客介绍了如何在MongoDB中进行模糊查询和关键字查询,使用了正则表达式newRegExp。同时展示了在Next.js应用中,如何通过不同组件间的路由传递查询参数,实现在首页组件的服务器端获取数据。示例代码包括多条件模糊查询和关键字查询的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在维护自己博客的时候,在前面增加了博客的搜索,记录一下。
MongoDB模糊查询主要是晕倒的正则表达式new RegExp这个属性,可用模糊查询也可以是关键字查询

  • 多条件模糊查询
async findArticle() {
    const queryData = this.ctx.query;
	let reg = new RegExp(queryData)
	let filter = {$or:[
		{title:{$regex:reg}},
		{name:{$regex:reg}},
		...
		]}
	article = await this.ctx.model.Article.find(filter)  
}
  • 关键字查询
async findArticle() {
    const queryData = this.ctx.query;
	let reg = new RegExp(title) 
	article = await this.ctx.model.Article.find({title:{$regex:reg}})    
}

在Next.js中实现查询,由于自己的头部导航和内容在不同的组件中,所以是一路由的方式进行的查询。

// hearder 组件
  const onSearch = (e) => {
    Router.push({ path: "/", query: { title: e } });
  };
// 首页组件
export async function getServerSideProps(context) {
  console.log(context);
  const options = {
    page: 1,
    limit: 10,
    title: context?.query?.title,
  };
  if (context.query.page) {
    options.page = Number(context.query.page);
  }
  const res = await axios({ url: servicePath.article, data: options });
  const data = res?.data;

  return {
    props: {
      data,
    },
  };
}

本文连接:点击
博主个人小博客:嘿嘿

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值