首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
filter
hook
email
format
subset
input
httprequest
import
stream
list
tree
dockerfile
random
uri
jsp
actionscrip
emoji
cSharp
schema
python3
copy
audio
md5
scala
io
merge
javascript
flutter
join
datetime
fetch
solr
utf-8
c语言
replace
range
php
timezone
lua
perl
include
express
vba
case
vbscript
instance
loops
bash
rsa
hashcode
netty
export
cookie
web
expression
sum
function
triggers
python
hashset
bit
usb
get
testing
command
chat
select
python2
tags
yaml
plugins
integer
main
timestamp
runtime
blob
java
object
byte
当前位置:
开发笔记
>
编程语言
> 正文
【问Mongoose】我应该如何处理分页?
作者:佩菱淑华7 | 来源:互联网 | 2023-09-24 16:29
需求场景作者和书籍列表展示列表时如何处理分页数据库如下
需求场景
作者和书籍列表
展示列表时如何处理分页
数据库如下
作者Author
1
2
3
4
5
6
7
8
9
10
// author
let authorSchema = new Schema({
name: {
type: String,
required: true,
index: true,
unique: true
}
})
module.exports = mongoose.model('Author', authorSchema)
书籍Book
1
2
3
4
5
6
7
8
9
10
11
12
// book
let bookSchema = new Schema({
author: {
type: Schema.Types.ObjectId,
ref: 'Author'
},
type: {
type: String,
default: ''
}
})
module.exports = mongoose.model('Book', bookSchema)
查询如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 获取列表-不分组
const getBooks = async (ctx, next) => {
let { size = 10, page = 1 } = ctx.query
let optiOns= {
skip: Number((page - 1) * size),
limit: Number(size)
}
let res = await Book.find({}, null, options)
let total = await Book.countDocuments()
let data = {
list: res,
pagination: {
total,
page,
size
}
}
ctx.body = {
data,
code: 0
}
}
问题:如果我想得到某个作者的书籍列表,有什么好的解决办法么?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 获取列表-如何分组
const getMyBooks = async (ctx, next) => {
let authorId = ctx.authorId
let { size = 10, page = 1 } = ctx.query
let optiOns= {
skip: Number((page - 1) * size),
limit: Number(size)
}
let res = await Book.find({ author: authorId }, null, options)
// ???????????
let total = await Book.countDocuments() // 这个总数应该如何获取比较好?是按authorId查到全部的book,取数组length么?
let data = {
list: res,
pagination: {
total,
page,
size
}
}
ctx.body = {
data,
code: 0
}
}
go
数据库
schema
string
require
export
object
default
const
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
io
深入解析 Lifecycle 的实现原理
本文将详细介绍 Android Jetpack 中 Lifecycle 组件的实现原理,帮助开发者更好地理解和使用 Lifecycle,避免常见的内存泄漏问题。 ...
[详细]
蜡笔小新 2024-11-12 14:05:19
io
Java DAO模式详解与代码示例
DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ...
[详细]
蜡笔小新 2024-11-13 12:25:33
io
如何在Java中使用DButils类
这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ...
[详细]
蜡笔小新 2024-11-12 13:46:11
io
大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ...
[详细]
蜡笔小新 2024-11-11 19:05:59
datetime
尝试对从复杂 XSD 生成的类进行序列化时出现 NullReferenceException 错误
在尝试对从复杂 XSD 生成的类进行序列化时,遇到了 `NullReferenceException` 错误。尽管已经花费了数小时进行调试和搜索相关资料,但仍然无法找到问题的根源。希望社区能够提供一些指导和建议,帮助解决这一难题。 ...
[详细]
蜡笔小新 2024-11-02 17:25:38
io
更新vuex的数据为什么用mutation?
更新vuex的数据为什么用mutation?,Go语言社区,Golang程序员人脉社 ...
[详细]
蜡笔小新 2024-11-13 18:30:04
io
SoundPool
如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ...
[详细]
蜡笔小新 2024-11-13 16:47:19
io
SpringMVC 入门指南:快速上手 Java Web 开发
本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ...
[详细]
蜡笔小新 2024-11-13 14:22:01
io
Spring – Bean Life Cycle
Spring – Bean Life Cycle ...
[详细]
蜡笔小新 2024-11-13 13:24:40
io
Java 并发编程:深入解析 AtomicInteger 和 CAS 无锁算法
在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ...
[详细]
蜡笔小新 2024-11-12 16:40:04
io
PHP 对象生命周期与内存管理
本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ...
[详细]
蜡笔小新 2024-11-12 13:35:26
io
第二十五天接口、多态
1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ...
[详细]
蜡笔小新 2024-11-12 06:43:20
io
自定义 Android 圆形进度条视图,支持显示数字和中心文字
本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ...
[详细]
蜡笔小新 2024-11-10 13:04:42
io
探索资源访问的学习路径与方法
本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ...
[详细]
蜡笔小新 2024-11-06 18:03:41
io
Hibernate实战笔记14:深入解析反向工程技术
在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ...
[详细]
蜡笔小新 2024-11-04 18:29:37
佩菱淑华7
这个家伙很懒,什么也没留下!
Tags | 热门标签
filter
hook
email
format
subset
input
httprequest
import
stream
list
tree
dockerfile
random
uri
jsp
actionscrip
emoji
cSharp
schema
python3
copy
audio
md5
scala
io
merge
javascript
flutter
join
datetime
RankList | 热门文章
1
Capsule Social:web3创作平台能否成为创作者的世外桃源?
2
B站营销三连:创意、信任和UP主
3
Inno Setup—调用dll外部库实现一键安装
4
new了2个Thread,为什么不是交叉打印?
5
怎么删除starred in android这个联系人分组,GitHublzjin/SideBarView: Android 字母索引View,类似电话联系人分类...
6
前端技术周刊 20181210:前端自动化测试
7
机器学习创企Octo.ai成功获得20万美元融资
8
敢字意思 在新华字典的读音解释笔画常用组词起名
9
datalink编写
10
GCD多线程在swift中的变化
11
我们身边的网络知识
12
如何快速设置Excel表的行高,且版面比较美观?
13
小波ios推广码贴吧,黄瓜推广码ios
14
简单加密维吉尼亚
15
[回忆]2007年的GDNT研发广东北电辞职信.
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有