问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mongodb 模糊查询后,怎么跳转分页

发布网友 发布时间:2022-05-03 05:39

我来回答

2个回答

懂视网 时间:2022-05-03 10:00

mongodb模糊查询并分页

1.建立数据库

代码如下:

var mongoose = require(‘mongoose‘);
var shortid = require(‘shortid‘);
var Schema = mongoose.Schema;

var IndexDataSchema = new Schema({
 _id: {
 type: String,
 unique: true,
 ‘default‘: shortid.generate
 },
 type: String,
 city: String,
 name:string,
 value: [{name: String, value: String}],
 create: {type: Date, default: Date.now},
 expand: String
});

IndexDataSchema.statics = {
 defaultSort: {‘create‘: 1},
 defaultOptions: {‘pageSize‘: 0}

};


var IndexData = mongoose.model(‘IndexData‘, IndexDataSchema);

module.exports = IndexData;

  1. 页面布局
    这里只需要搜索框和搜索按钮,再点击按钮时,执行search()方法并发送请求

代码如下:

 <div class="searchPart">
   <input type="text" class="form-control" id="txtSearch" placeholder="请输入项目名称">
   <button class="btn btn-success search_btn" onclick="search()">搜索</button>
  </div>
  <script>
 var paginObj;
 
 //设置每页显示页码
 var pageSize = 20; 
 
 //设置当前页码为1
 var currentPage = 1;
 
 var condition = {‘city‘: currentCityId, ‘name‘: ‘‘}
 jQuery(document).ready(function () {
 refresh();
 });
 
 //获取查找条件
 function getCondition() {
 var name = $(‘#txtSearch‘).val();
 if (name && name.trim()) {
 // {‘$regex‘: name, ‘$options‘: ‘i‘}}为模糊查询固定语法,name为参数
  condition = {‘city‘: currentCityId, ‘name‘: {‘$regex‘: name, ‘$options‘: ‘i‘}};
 }
 else {
  condition = {‘city‘: currentCityId}
 }
 return condition;
 }
 
 //刷新页面
 function refresh() {
 
 //查找内容
 $.get(‘/Manage/list/projects‘, {
  ‘pageSize‘: pageSize,
  ‘currentPage‘: currentPage,
  ‘condition‘: getCondition()
 }, function (result) {
  appendData(result.data);
 })

//查找个数
 $.get(‘/Manage/listCount/projects‘, {‘condition‘: condition}, function (result) {
  paginObj = new DataPagin(document.querySelector(‘.projects-list‘), result.count, {
  ‘pageSize‘: pageSize,
  ‘changePageFun‘: rquestPageData
  });
 })
 }

//重新分页
 function rquestPageData(currentPage, callback) {
 $.get(‘/Manage/list/projects‘, {
  ‘pageSize‘: pageSize,
  ‘currentPage‘: currentPage,
  ‘condition‘: getCondition()
 }, function (result) {
  appendData(result.data);
 })
 if (callback) {
  callback();
 }
 }

//改变页码,显示相应的内容
 function changePage(paginObj, index) {
 paginObj.setPageNumber(index);
 }

 function appendData(data) {
 //debugger;
 var list = $(‘.projects-list‘).children(‘tbody‘);
 list.html(‘‘);
 // 页面显示模板
 for (var i = 0; i < data.length; i++) {
 
  .........
  //此部分自己定义
  
 
 })
 }

 
 //点击搜索按钮执行该方法
 function search() {
 currentPage = 1;
 refresh();
 }


</script>

  1. 到数据库查找并返回相应内容

 var formidable = require("formidable");
 var common = require(‘./common‘);
 var path = require("path");
 var fs = require(‘fs‘);
 var path = require(‘path‘);
 var guid = require(‘guid‘);
 var shortid = require(‘shortid‘);
 
 var AuctionHouse = require(‘./db/IndexData‘);


 var funs = {
 getList: function (collectionName, req, res, next) {
 var mainObj = transformCollctionName(collectionName);
 if (!mainObj) {
  next();
 }
 var options = req.query;
 var sort = options.sort || mainObj.defaultSort;
 var pageSize = options.pageSize || mainObj.defaultOptions.pageSize;
 var currentPage = options.currentPage || 1;
 var condition = options.condition || {}
 
 //此部分为查找条件
 mainObj.find(condition).sort(sort).skip((currentPage - 1) * pageSize).limit(pageSize).exec(function (err, docs) {
  if (err) {
  next(err);
  }
  return res.json(common.returnData(true, docs));
 })
 },
 countList: function (collectionName, req, res, next) {
 var mainObj = transformCollctionName(collectionName);
 if (!mainObj) {
  next();
 }
 var condition = req.query.condition || {}
 mainObj.find(condition).count().exec(function (err, docs) {
  if (err) {
  next(err);
  }
  return res.json({‘count‘: docs});
 })
 },
 HandleEvent: function (collectionName, actionsName, req, res, next) {
 var mainFuns = getCollctionFuns(collectionName)
 if (!mainFuns) {
  next();
 }
 var fun = mainFuns[actionsName];
 if (!fun) {
  next();
 }
 fun(req, res, next);
 }

基于mongodb的搜索分页

标签:定义   cts   type   count()   ring   lct   append   turn   名称   

热心网友 时间:2022-05-03 07:08

Query.Matches("Title", str);//模糊查询 相当于sql中like -- str可包含正则表达式
如果你是编程,那使用相应的数据库驱动也包含相应的模糊查询方法。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
“此何与于殷人之屡迁”的出处是哪里 “应须愁杀病维摩”的出处是哪里 “若中音会”的出处是哪里 “若论曹子建”的出处是哪里 “若论常快活”的出处是哪里 “幸有橘丸丸日大”的出处是哪里 服装学校哪里的比较好 选择选择母校生活的几个片段,300字。 选择的重要性的文章(选择的重要性——挑选人生的每个片段) 极品飞车9最高通缉 我家电脑能玩么 配置跟得上么 EXCEL97-2016版中如何做副本 青梅酒的制作方法怎么做 荷瓣兰花有哪些品种? 下山春兰荷瓣草的特征是什么? 多瓣多舌的兰花在草上有何特征 发红包之后解绑了支付宝,未领取的红包能退回吗? 请问这兰花是什么品种啊? 联想拯救者怎么点鼠标右键闪退 怖可以组什么成语 这是什么品种的兰花啊 联想拯救者14无背光去服务站更换键盘大概要多少钱? 请问大家这是春兰什么品种 怖的组词 请问这个春兰什么品种? 联想拯救者r7000换个键盘多少钱 怖可以组什么词语 这是春兰什么品种 这个春兰是哪个品种? 这是什么兰花,这些是一个品种吗 怖字组词(3个) 泡菜汤用老豆腐还是嫩豆腐 韩式泡菜汤怎么做? 粉葛煲鸡汤放什么材料 粉葛搭配什么食材煲汤比较好? 韩国大酱汤用的是老豆腐还是嫩豆腐 葛根煲鸡汤用什么配料 粉葛煲汤放什么材料 粉葛搭配什么食材煲汤 粉葛可以和母鸡一起煲汤吗? 粉葛浸鸡的做法 巴戟天粉葛老鸡汤的做法 葛根炖鸡怎么做 粉葛搭配什么煲汤 家里有粉葛,买点猪骨煲火鸡汤可以吗 粉葛搭配哪些食材可以煲汤 常用的分页类适用于mongodb吗? lv薯条包的黄色身份卡怎么看 lv薯条包现在算网红包吗?二手值多少钱 LV包包怎样辨别真伪 LV这个扣子怎么打开?