前言
MongoDB 是目前非常流行的一款 NoSQL 数据库,它支持丰富的查询操作符,为开发人员提供了灵活、高效的数据查询、操作和管理手段。本文将详细介绍 MongoDB 中常用的操作符,以及如何使用这些操作符进行查询、更新、删除等操作。
查询操作符
比较操作符
比较操作符用于在查询时比较字段值与指定值的大小关系。
MongoDB 支持以下比较操作符:
$eq
匹配等于给定值的文档。$ne
匹配不等于给定值的文档。$gt
匹配大于给定值的文档。$gte
匹配大于等于给定值的文档。$lt
匹配小于给定值的文档。$lte
匹配小于等于给定值的文档。
示例代码:
-- -------------------- ---- ------- -- -- --- -- -- --- ------------------------ ----- ------ -- -- --- ---- -- --- ------------------------ ------ ------ -- -- --- -- -- --- ------------------------ ----- ------ -- -- --- ---- -- --- ------------------------ ------ ------ -- -- --- -- -- --- ------------------------ ----- ------ -- -- --- --- -- --- ------------------------ ----- ------
逻辑操作符
逻辑操作符用于在查询时对多个语句进行逻辑操作,并支持嵌套使用。
MongoDB 支持以下逻辑操作符:
$and
匹配同时满足多个条件的文档。$or
匹配至少满足一个条件的文档。$nor
与$or
相反,匹配不满足任何条件的文档。$not
匹配不满足指定条件的文档。
示例代码:
-- -------------------- ---- ------- -- -- --- ---- -- ----- -- --- ------------------------- ------ ------ ----- ----- ------ -------- -- -- --- -- -- --- -- --- ------------------------ ------ ----- ----- ----- ----- -------- -- -- --- --- -- --- ------------------------ ------ ----- ------- -- -- --- --- -- --- ------------------------ ------ ----- ------- -- -- --- --- -- ---- -- --- ------------------------- ------ ----- ----- ----- ----- --------
元素操作符
元素操作符用于在查询时判断文档中是否存在或不存在某个字段。
MongoDB 支持以下元素操作符:
$exists
匹配文档中是否存在指定字段。$type
匹配文档中指定字段类型。
示例代码:
// 查询包含 age 字段的文档 db.collection.find({age: {$exists: true}}); // 查询不包含 age 字段的文档 db.collection.find({age: {$exists: false}}); // 查询 age 字段类型为数字的文档 db.collection.find({age: {$type: "number"}});
正则表达式操作符
正则表达式操作符用于在查询时匹配文档中某个字段的值与正则表达式是否匹配。
MongoDB 支持以下正则表达式操作符:
$regex
匹配文档中指定字段与正则表达式是否匹配。$options
可选参数,用于指定正则表达式选项。
示例代码:
-- -------------------- ---- ------- -- -- ---- --- --- ----- ------------------------- ------- -- -- ---- --- --- ----- ------------------------- ------- -- -- ---- ---- ---- ------ ------------------------- ------- -- -- ---- --- --- - --- ----- ------------------------- -------- -- -- ---- --- --- - --- ----- ------------------------- --------
数组操作符
数组操作符用于在查询时匹配数组字段中的值与指定值是否相等。
MongoDB 支持以下数组操作符:
$all
匹配数组中所有指定值的文档。$elemMatch
匹配数组中至少一个元素满足指定条件的文档。$size
匹配数组长度是否等于指定值的文档。
示例代码:
// 查询包含 tags 中同时包含 "mongodb" 和 "database" 的文档 db.collection.find({tags: {$all: ["mongodb", "database"]}}); // 查询包含 tags 中至少有一个元素值等于 "mongodb" 并且 score 大于 90 的文档 db.collection.find({tags: {$elemMatch: {$eq: "mongodb"}}, score: {$gt: 90}}); // 查询包含 tags 中元素个数为 3 的文档 db.collection.find({tags: {$size: 3}});
更新操作符
更新操作符是用来修改文档字段值的,让 MongoDB 中的文档得到更改。
MongoDB 支持以下更新操作符:
$set
设置文档中指定字段的值。$unset
移除文档中指定字段。$inc
将文档中指定字段的值增加指定数值。$mul
将文档中指定字段的值乘以指定数值。$rename
重命名文档中指定字段。$push
向文档中指定数组字段中添加新元素。$pop
移除文档中指定数组字段中的最后一个或第一个元素。$addToSet
向文档中指定数组字段中添加新元素,如果元素已存在则不重复添加。$pull
移除文档中指定数组字段中符合指定条件的元素。$pullAll
移除文档中指定数组字段中符合指定数组中所有元素的元素。
示例代码:
-- -------------------- ---- ------- -- - ---- ---- ------ --------------------------- -------- ------ ------ ---------- -- -- ------- -- --------------------------- -------- -------- --------- ----- -- - --- ------ - --------------------------- -------- ------ ----- ----- -- - ----- ------ --- --------------------------- -------- ------ ------- ------- -- - ------- ------ -------- --------------------------- -------- --------- --------- -------------- -- - --- -------- --------- --------------------------- -------- ------- ------ ------------- -- - --- ----------- --------------------------- -------- ------ ------ ----- -- - --- -------- -------------------- --------------------------- -------- ----------- ------ ------------ -- - --- ----------- ------------ --- --------------------------- -------- ------- ------ ---------------- -- - --- ----------- ------------ - ----- --- --------------------------- -------- ---------- ------ -------------- ----------
删除操作符
删除操作符是用来删除 MongoDB 中文档及其相关信息的,让 MongoDB 中的数据得到删除。
MongoDB 支持以下删除操作符:
$deleteOne
删除匹配到的第一个文档。$deleteMany
删除所有匹配到的文档。
示例代码:
// 删除 age 等于 30 的第一条数据document db.collection.deleteOne({age: 30}); // 删除 nam 等于 'jack' 的所有数据document db.collection.deleteMany({name: 'jack'});
总结
本文简单介绍了 MongoDB 中常用的操作符,包括查询、更新、删除等操作。在实际开发过程中,使用操作符可以使数据库操作变得更加高效、灵活、准确。希望本文对您学习 MongoDB 有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651a521e95b1f8cacd24adcd