【金秋打卡】第3天 MongoDB 操作符
2022/10/28 4:25:01
本文主要是介绍【金秋打卡】第3天 MongoDB 操作符,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:web前端架构师
课程章节:第14周 第六章 nodejs MongoDB 操作
主讲老师:张轩
课程内容: eggjs 调试技巧
查询操作符
比较操作符
mongodb 内置操作符都是以 $ 开头
- (>) 大于 - $gt
- (<) 小于 - $lt
- (>=) 大于等于 - $gte
- (<= ) 小于等于 - $lte
- (===) 等于 - $eq
- (!==) 不等于 - $neq
/格式
{ age: { $gt : 30 } }
例如下面 使用 mongoose 查找年龄大于 22 的用户
import mongoose from 'mongoose' const Schema = mongoose.Schema const UserSchema = new Schema({ username: String, password: String, date: Date, createAt: Date, age: Number }) const User = mongoose.model('User', UserSchema); const data = await User.find({ age: { $gt: 22 } })
逻辑操作符
逻辑与
直接对象中添加多个条件即可, $and
{ age: { $gte: 30 }, name: 'james' }
格式
{ age: { $gte: 30 }, name: 'james' }
等于
{ $and: [ { age: { $gte: 30 } }, { name: 'james' } ] }
逻辑或
使用 $or
{ $or: [ { age: { $gte: 30 } }, { name: 'xiaobao' } ] }
Element Operators
- $exists: 判断属性是否存在
- $type: 数据类型 所有 types 列表:https://docs.mongodb.com/manual/reference/operator/query/type/#available-types
格式:
{ $exists: true }
{ $type: 'string'}
const data = await User.find({ age: { $type: 'number' } })
Mongodb 整体结果的处理
- $limit 限制条数
- $skip 跳过的条数
利用这个我们可以实现分页功能
router.get('/user', async (ctx) => { const pagesize = Number(ctx.query.pagesize) || 2 const pagenum = Number(ctx.query.pagenum) || 0 const data = await User.find().limit(pagesize).skip(pagenum * pagesize) ctx.body = { data } })
sort 可以用来排序
- -1 降序
- 1 升序
const data = await User.find().sort({age: 1})
projection 可以用来指定返回的字段
0 表示不需要
例如屏蔽 password 字段
const data = await User.find({}, { password: 0 })
下面代码就会得到 name 和 _id 字段,当我们查询时,mongodb 默认会把 _id 字段给带上
const data = await User.find({}, { name: 1 })
这篇关于【金秋打卡】第3天 MongoDB 操作符的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15SendGrid 的 Go 客户端库怎么实现同时向多个邮箱发送邮件?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么设置header 和 标签tag 呢?-icode9专业技术文章分享
- 2024-11-12Cargo deny安装指路
- 2024-11-02MongoDB项目实战:从入门到初级应用
- 2024-11-01随时随地一键转录,Google Cloud 新模型 Chirp 2 让语音识别更上一层楼
- 2024-10-25Google Cloud动手实验详解:如何在Cloud Run上开发无服务器应用
- 2024-10-24AI ?先驱齐聚 BAAI 2024,发布大规模语言、多模态、具身、生物计算以及 FlagOpen 2.0 等 AI 模型创新成果。
- 2024-10-20goland工具下,如修改一个项目的标准库SDK的版本-icode9专业技术文章分享
- 2024-10-17Go学习:初学者的简单教程
- 2024-10-17Go学习:新手入门完全指南