【金秋打卡】第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-04-01got an unexpected keyword argument
- 2024-03-30维多利亚的秘密 golang入坑系统
- 2024-03-29mongodb sort by date
- 2024-03-29go swagger
- 2024-03-25mongodb cdc
- 2024-03-25how to use go in vscode
- 2024-03-22mongooseserverselectionerror: connect econnrefused ::1:27017
- 2024-03-21pymongo insert_many
- 2024-03-18projection mongodb
- 2024-03-14clickhouse-go