📅  最后修改于: 2023-12-03 15:41:54.614000             🧑  作者: Mango
在 MongoDB 中,我们可以使用运算符(operators)来进行更精细化的查询,例如比较数据大小、匹配字符串、查找文档中特定字段等等。
下面是一些常用的 MongoDB 运算符,以及它们在 JavaScript 中的使用方法。
等于运算符 $eq
用来匹配值和指定表达式相等的文档。
db.collection.find({ field: { $eq: value } })
例如,我们想要查找 users
数据集中 age
字段等于 18 的文档,可以这样做:
db.users.find({ age: { $eq: 18 } })
包含于运算符 $in
用来匹配指定值中任意一个符合的文档。
db.collection.find({ field: { $in: [value1, value2, ...] } })
例如,我们想要查找 products
数据集中 type
字段值为 fruit
或 vegetable
的文档,可以这样做:
db.products.find({ type: { $in: ["fruit", "vegetable"] } })
不等于运算符 $ne
用来匹配其值与指定表达式不相等的文档。
db.collection.find({ field: { $ne: value } })
例如,我们想要查找 users
数据集中 gender
字段值不等于 M
的文档,可以这样做:
db.users.find({ gender: { $ne: "M" } })
小于运算符 $lt
用来匹配其值小于指定表达式的文档。
db.collection.find({ field: { $lt: value } })
例如,我们想要查找 products
数据集中 price
字段值小于 10 的文档,可以这样做:
db.products.find({ price: { $lt: 10 } })
小于或等于运算符 $lte
用来匹配其值小于或等于指定表达式的文档。
db.collection.find({ field: { $lte: value } })
例如,我们想要查找 products
数据集中 price
字段值小于或等于 10 的文档,可以这样做:
db.products.find({ price: { $lte: 10 } })
大于运算符 $gt
用来匹配其值大于指定表达式的文档。
db.collection.find({ field: { $gt: value } })
例如,我们想要查找 users
数据集中 age
字段值大于 18 的文档,可以这样做:
db.users.find({ age: { $gt: 18 } })
大于或等于运算符 $gte
用来匹配其值大于或等于指定表达式的文档。
db.collection.find({ field: { $gte: value } })
例如,我们想要查找 users
数据集中 age
字段值大于或等于 18 的文档,可以这样做:
db.users.find({ age: { $gte: 18 } })
正则表达式匹配运算符 $regex
用来匹配某个字段值是否符合指定的正则表达式。
db.collection.find({ field: { $regex: /pattern/ } })
例如,我们想要查找 users
数据集中 name
字段值以 J
开头的文档,可以这样做:
db.users.find({ name: { $regex: /^J/ } })
以上这些 MongoDB 运算符只是冰山一角,还有更多的运算符可以用来匹配复杂的文档数据。掌握这些运算符,可以让我们的查询更加高效精准。
参考链接: