直播app開發,使用koa和MongoDB實現分頁和模糊查詢
直播app開發,使用koa和MongoDB實現分頁和模糊查詢
1. 分頁
per_page:一頁多少條資料
page:第幾頁
// index.js const Koa = require('koa') const app = new Koa() const Router = require('koa-router') const usersRouter = new Router({ prefix: '/users'}) // MongoDB資料庫User模型 const User = require('/models/users.js') const bodyparser = require('koa-bodyparser') app.use(bodyparser()) // 使用者列表 usersRouter.get('/', (ctx) => { // 分頁 const { per_page = 10 } = ctx.query const page = Math.max(ctx.query.page * 1, 1) - 1 const perPage = Math.max(per_page * 1, 1) ctx.body = await User.find().limit(perPage).skip(page * perPage) }) app.use(usersRouter.routes()) app.use(usersRouter.allowedMethods()) app.listen(3000)
2. 模糊查詢
MongoDB中實現模糊查詢要使用正規表示式
// index.js const Koa = require('koa') const app = new Koa() const Router = require('koa-router') const usersRouter = new Router({ prefix: '/users'}) // MongoDB資料庫User模型 const User = require('/models/users.js') const bodyparser = require('koa-bodyparser') app.use(bodyparser()) // 使用者列表 usersRouter.get('/', (ctx) => { // 分頁+模糊查詢 李 const { per_page = 10 } = ctx.query const page = Math.max(ctx.query.page * 1, 1) - 1 const perPage = Math.max(per_page * 1, 1) // 模糊查詢,要用正規表示式 ctx.body = await User.find({name:new RegExp(ctx.query.q)}).limit(perPage).skip(page * perPage) }) app.use(usersRouter.routes()) app.use(usersRouter.allowedMethods()) app.listen(3000)
3. 欄位過濾
select 用於顯示在MongoDB資料庫中select:false預設不顯示,但是現在需要顯示的資料
// index.js const Koa = require('koa') const app = new Koa() const Router = require('koa-router') const usersRouter = new Router({ prefix: '/users'}) // MongoDB資料庫User模型 const User = require('/models/users.js') const bodyparser = require('koa-bodyparser') app.use(bodyparser()) // 根據使用者id查詢某個使用者 usersRouter.get('/:id', (ctx) => { // 欄位過濾 const { fields = '' } = ctx.query const selectFields = fields.split(';').filter(f => f).map(f => ' +' + f).join(' ') //注意這裡是空格+ const populateStr = fields.split(';').filter(f => f).map(f => { if (f === 'employments') { return 'employments.company employments.job' } if (f === 'educations') { return 'educations.school educations.major' } return f }).join(' ') const user = await User.findById(ctx.params.id).select(selectFields).populate(populateStr) if (!user) { ctx.throw(404, '使用者不存在') } ctx.body = user }) app.use(usersRouter.routes()) app.use(usersRouter.allowedMethods()) app.listen(3000)
以上就是直播app開發,使用koa和MongoDB實現分頁和模糊查詢, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2944375/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SpringMVC+Spring Data JPA +Bootstrap 分頁實現和模糊查詢分頁SpringMVCboot
- iOS程式設計師利用分頁和模糊查詢技術實現一個App介面iOS程式設計師APP
- 直播軟體app開發,HTML和CSS分別實現註冊頁面表單APPHTMLCSS
- indexdb實現分頁查詢Index
- oracle 精確查詢和模糊查詢Oracle
- MySQL——優化巢狀查詢和分頁查詢MySql優化巢狀
- SSM框架實現分頁查詢例子SSM框架
- c# winform 實現分頁查詢C#ORM
- 直播app開發,首頁輪播圖效果實現APP
- 如何優雅地實現分頁查詢
- 小程式雲開發模糊查詢,實現資料庫多欄位的模糊搜尋資料庫
- C# Winform ComboBox模糊查詢實現C#ORM
- 如何實現模糊查詢時間段
- 建立一個SpringBoot專案,實現簡單的CRUD功能和分頁查詢Spring Boot
- app直播原始碼,平臺登入頁面實現和修改密碼頁面實現APP原始碼密碼
- 直播電商平臺開發,HTML和CSS分別實現註冊頁面表單HTMLCSS
- SSH整合實現分頁查詢(兩種方式)
- Mybatis之map操作使用者和模糊查詢擴充套件MyBatis套件
- 模糊查詢區分大小寫嗎?
- golang透過mysql語句實現分頁查詢GolangMySql
- golang通過mysql語句實現分頁查詢GolangMySql
- SSH:hiberate實現資料的查詢(單查詢和全查詢)
- MySQL簡單實現多欄位模糊查詢MySql
- Elasticsearch 分頁查詢Elasticsearch
- 二分查詢的兩種實現形式遞迴和迭代遞迴
- SQL Server資料庫————模糊查詢和聚合函式SQLServer資料庫函式
- 直播軟體開發,實現模糊搜尋的程式碼分析
- mysql 模糊查詢MySql
- MaxCompute如何對SQL查詢結果實現分頁獲取SQL
- JSP怎樣將查詢的資料實現分頁操作JS
- uni-app之實現分頁APP
- MyBatis學習筆記(四)使用map實現查詢和插入MyBatis筆記
- 基於SSH框架專案使用模糊查詢的搜尋功能開發框架
- NET 集合分頁查詢
- AntDesignBlazor示例——分頁查詢Blazor
- MySQL的分頁查詢MySql
- ThinkPhp框架:分頁查詢PHP框架
- 分頁查詢優化優化