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

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

今天在维护自己博客的时候,在前面增加了博客的搜索,记录一下。
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,
    },
  };
}

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

Mingo 是 MongoDB 查询语言的 JavaScript 实现。Mingo 利用 MongoDB 风格查询,在客户端或者服务器端环境下,允许直接查询内存的 JavaScript 对象。特性:Comparisons Operators ($gt, $gte, $lt, $lte, $ne, $nin, $in)Logical Operators ($and, $or, $nor, $not)Evaluation Operators ($regex, $mod, $where)Array Operators ($all, $elemMatch, $size)Element Operators ($exists, $type)Aggregation Pipeline Operators ($group, $match, $project, $sort, $limit, $unwind, $skip)Conditional Operators ($cond, $ifNull)Group Operators ($addToSet, $sum, $max, $min, $avg, $push, $first, $last)Arithmetic Operators ($add, $divide, $mod, $multiply, $subtract)String Operators ($cmp, $strcasecmp, $concat, $substr, $toLower, $toUpper)Set Operators ($setEquals, $setIntersection, $setDifference, $setUnion, $setIsSubset, $anyElementTrue, $allElementsTrue)Projection Operators ($elemMatch, $slice)JSON stream filtering and projection. NodeJS only使用var Mingo = require('mingo'); // or just access *Mingo* global in browser // setup the key field for your collection Mingo.setup({     key: '_id' // default }); // create a query with criteria // find all grades for homework with score >= 50 var query = new Mingo.Query({     type: "homework",     score: { $gte: 50 } });搜索和过滤// filter collection with find() var cursor = query.find(collection); // shorthand with query criteria // cursor = Mingo.find(collection, criteria); // sort, skip and limit by chaining cursor.sort({student_id: 1, score: -1})     .skip(100)     .limit(100); // count matches cursor.count(); // iterate cursor // iteration is forward only while (cursor.hasNext()) {     console.log(cursor.next()); } // use first(), last() and all() to retrieve matched objects cursor.first(); cursor.last(); cursor.all(); // Filter non-matched objects ( var result = query.remove(collection); 标签:Mingo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值