Mongodb常见操作符和运算符总结

 更新时间:2024年01月14日 09:22:24   作者:慕仲卿  
MongoDB 提供了丰富的操作符(Operators)和运算符(Expressions)用于在查询和更新文档时指定条件和操作数据,本文将通过代码示例给大家详细的总结一下Mongodb常见操作符和运算符,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

查询操作符(Query Operators)

$eq - 等于

db.collection.find({ field: { $eq: value } })
// 示例:查找所有名字等于 "Tom" 的文档
db.users.find({ name: { $eq: "Tom" } })

$gt - 大于

db.collection.find({ field: { $gt: value } })
// 示例:查找所有年龄大于 25 的用户
db.users.find({ age: { $gt: 25 } })

$gte - 大于等于

db.collection.find({ field: { $gte: value } })
// 示例:查找所有年龄大于等于 25 的用户
db.users.find({ age: { $gte: 25 } })

$lt - 小于

db.collection.find({ field: { $lt: value } })
// 示例:查找所有年龄小于 25 的用户
db.users.find({ age: { $lt: 25 } })

$lte - 小于等于

db.collection.find({ field: { $lte: value } })
// 示例:查找所有年龄小于等于 25 的用户
db.users.find({ age: { $lte: 25 } })

$ne - 不等于

db.collection.find({ field: { $ne: value } })
// 示例:查找所有名字不是 "Tom" 的文档
db.users.find({ name: { $ne: "Tom" } })

$in - 在数组中

db.collection.find({ field: { $in: array } })
// 示例:查找兴趣包含 "阅读" 或 "游泳" 的用户
db.users.find({ interests: { $in: ["阅读", "游泳"] } })

$nin - 不在数组中

db.collection.find({ field: { $nin: array } })
// 示例:查找兴趣不含 "阅读" 和 "游泳" 的用户
db.users.find({ interests: { $nin: ["阅读", "游泳"] } })

$or - 或者

db.collection.find({ $or: [{ condition1 }, { condition2 }] })
// 示例:查找名字为 "Tom" 或年龄大于 25 的用户
db.users.find({ $or: [{ name: "Tom" }, { age: { $gt: 25 } }] })

$and - 并且

db.collection.find({ $and: [{ condition1 }, { condition2 }] })
// 示例:查找名字为 "Tom" 并且年龄大于 25 的用户
db.users.find({ $and: [{ name: "Tom" }, { age: { $gt: 25 } }] })

$not - 非

db.collection.find({ field: { $not: { operator: value } } })
// 示例:查找年龄不小于 25 的用户
db.users.find({ age: { $not: { $lt: 25 } } })

$exists - 字段存在

db.collection.find({ field: { $exists: true or false } })
// 示例:查找有 `email` 字段的用户
db.users.find({ email: { $exists: true } })

更新操作符(Update Operators)

$set - 设置字段的值

db.collection.update({ query }, { $set: { field: value } })
// 示例:更新名字为 "Tom" 的用户的年龄为 30
db.users.update({ name: "Tom" }, { $set: { age: 30 } })

$unset - 删除字段

db.collection.update({ query }, { $unset: { field: "" } })
// 示例:删除名字为 "Tom" 的用户的 `age` 字段
db.users.update({ name: "Tom" }, { $unset: { age: "" } })

$inc - 增加数值字段的值

db.collection.update({ query }, { $inc: { field: value } })
// 示例:将名字为 "Tom" 的用户的年龄增加 2
db.users.update({ name: "Tom" }, { $inc: { age: 2 } })

$push - 向数组字段添加元素

db.collection.update({ query }, { $push: { field: value } })
// 示例:向名字为 "Tom" 的用户的兴趣列表添加 "足球"
db.users.update({ name: "Tom" }, { $push: { interests: "足球" } })

$pull - 从数组字段删除元素

db.collection.update({ query }, { $pull: { field: value } })
// 示例:从名字为 "Tom" 的用户的兴趣列表中删除 "足球"
db.users.update({ name: "Tom" }, { $pull: { interests: "足球" } })

$addToSet - 向数组添加元素,但不创建重复项

db.collection.update({ query }, { $addToSet: { field: value } })
// 示例:向名字为 "Tom" 的用户的兴趣列表中添加 "游泳",如果 "游泳" 已存在,则忽略
db.users.update({ name: "Tom" }, { $addToSet: { interests: "游泳" } })

$each - 与 $push 或 $addToSet 配合,向数组添加多个元素

db.collection.update({ query }, { $push: { field: { $each: [value1, value2] } } })
// 示例:一次性向名字为 "Tom" 的用户的兴趣列表中添加多个兴趣
db.users.update({ name: "Tom" }, { $push: { interests: { $each: ["绘画", "舞蹈"] } } })

$pop - 从数组的开头或末尾删除元素

// $pop: 1 从末尾移除,$pop: -1 从开头移除
db.collection.update({ query }, { $pop: { field: 1 or -1 } })
// 示例:从名字为 "Tom" 的用户的兴趣列表末尾删除一个兴趣
db.users.update({ name: "Tom" }, { $pop: { interests: 1 } })

聚合管道操作符(Aggregation Pipeline Operators)

$match - 过滤数据

db.collection.aggregate([ { $match: { field: value } } ])
// 示例:筛选所有年龄大于 25 的用户
db.users.aggregate([ { $match: { age: { $gt: 25 } } }])

$group - 按字段分组

db.collection.aggregate([
  { $group: { _id: "$field", count: { $sum: 1 } } }
])
// 示例:按兴趣分组计数用户
db.users.aggregate([
  { $group: { _id: "$interests", count: { $sum: 1 } } }
])

$project - 指定输出字段

db.collection.aggregate([ { $project: { field1: 1, field2: 0 } } ])
// 示例:输出用户的名字和兴趣,不输出其他字段
db.users.aggregate([ { $project: { name: 1, interests: 1 } }])

$sort - 排序

db.collection.aggregate([ { $sort: { field: 1 or -1 } } ])
// 1 代表升序, -1 代表降序
// 示例:按年龄升序排列用户
db.users.aggregate([ { $sort: { age: 1 } }])

以上是MongoDB中的一些常用操作符和运算符,它们可以帮你构建灵活和强大的数据操作指令。在实际的应用中,会将多个操作符组合起来使用,以满足复杂的业务逻辑。

到此这篇关于Mongodb常见操作符和运算符总结的文章就介绍到这了,更多相关Mongodb操作符和运算符内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • mongodb处理中文索引与查找字符串详解

    mongodb处理中文索引与查找字符串详解

    这篇文章主要介绍了mongodb处理中文索引与查找字符串的相关资料,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • 浅析Mongodb性能优化的相关问题

    浅析Mongodb性能优化的相关问题

    数据库性能对软件整体性能的影响是不言而喻的,那么,当我们使用MongoDB时改如何提高数据库性能呢?这篇文章通过范式化与反范式化、填充因子的使用和索引的使用三个方面来谈了谈Mongodb性能优化的相关问题,有需要的朋友们下面来一起看看吧。
    2016-10-10
  • MongoDB模糊查询正则regex(类似like?和?not?like)

    MongoDB模糊查询正则regex(类似like?和?not?like)

    在类关系型数据库中,like和not?like是常用的模糊查询操作符,它允许我们在匹配字段的时候使用通配符,在MongoDB中,也有类似的操作符,MongoDB?可以使用?$regex?操作符来设置匹配字符串的正则表达式,MongoDB?使用?PCRE(Perl?兼容的正则表达式)作为正则表达式语言
    2024-02-02
  • MongoDB中数据的替换方法实现类Replace()函数功能详解

    MongoDB中数据的替换方法实现类Replace()函数功能详解

    这篇文章主要介绍了MongoDB中数据的替换方法实现类Replace()函数功能详解,需要的朋友可以参考下
    2020-02-02
  • Ubuntu系统中安装MongoDB及其启动命令mongod的教程

    Ubuntu系统中安装MongoDB及其启动命令mongod的教程

    这篇文章主要介绍了Ubuntu系统中安装MongoDB及其启动命令mongod的教程,包括设置MongoDB开机启动的脚本示例,非常推荐,需要的朋友可以参考下
    2016-01-01
  • windows7下使用MongoDB实现仓储设计

    windows7下使用MongoDB实现仓储设计

    本文给大家介绍了本人在物联网环境下基于MongoDB实现的仓储的配置信息及具体的使用示例,非常的实用,有需要的小伙伴可以参考下
    2017-09-09
  • MongoDB数据库中索引(index)详解

    MongoDB数据库中索引(index)详解

    本文给大家详细介绍了MongoDB数据库中的索引的知识,优缺点以及使用技巧等方面,非常细致,有需要的小伙伴可以参考下
    2016-11-11
  • MongoDB 简单入门教程(安装、基本概念、创建用户)

    MongoDB 简单入门教程(安装、基本概念、创建用户)

    这篇文章主要介绍了MongoDB 简单入门教程(安装、基本概念、创建用户)的相关资料,帮助大家更好的理解和学习使用MongoDB数据库,感兴趣的朋友可以了解下
    2021-03-03
  • Mongodb中MapReduce实现数据聚合方法详解

    Mongodb中MapReduce实现数据聚合方法详解

    Mongodb是针对大数据量环境下诞生的用于保存大数据量的非关系型数据库,针对大量的数据。接下来通过本文给大家介绍Mongodb中MapReduce实现数据聚合方法详解,感兴趣的朋友一起学习吧
    2016-05-05
  • 如何对 MongoDB 进行性能优化(五个简单步骤)

    如何对 MongoDB 进行性能优化(五个简单步骤)

    MongoDB一直是最流行的NoSQL,而根据DB-Engines Ranking最新的排行,时下MongoDB已经击败PostgreSQL跃居数据库总排行的第四位,仅次于Oracle、MySQL和Microsoft SQL Server。本文给大家介绍MongoDB性能优化的简单总结。
    2015-10-10

最新评论

?


http://www.vxiaotou.com