导入
基本查询操作符:比较操作符和逻辑操作符
学习使用 MongoDB 查询操作符,包括比较操作符、逻辑操作符和元素操作符,根据特定条件、文档存在性以及数据类型来筛选和获取数据。
表格
| 操作符 | 描述 |
|---|---|
| $eq | 匹配等于指定值的文档 |
| $gt | 匹配大于指定值的文档 |
| $gte | 匹配大于或等于指定值的文档 |
| $lt | 匹配小于指定值的文档 |
| $lte | 匹配小于或等于指定值的文档 |
| $ne | 匹配不等于指定值的文档 |
1db.users.find({"address.city": {$eq: "San Francisco"}}).limit(2) 2 3db.products.find({price: {$gt: 300}}).limit(2) 4 5db.reviews.find({rating: {$lte: 3}}).limit(2) 6 7db.orders.find({status: {$ne: "Delivered"}}).limit(2)
表格
| 操作符 | 描述 |
|---|---|
| $and | 匹配满足所有条件的文档 |
| $or | 匹配满足任意条件的文档 |
| $not | 反转一个条件 |
| $nor | 匹配不满足任何条件的文档 |
1db.products.find({ $or: [ 2{ inStock: false }, 3{ rating: { $lt: 3 } } 4] }).limit(2) 5 6db.products.find({ $and: [ 7{ inStock: true }, 8{ price: { $gt: 50 } } 9] }).limit(2) 10 11db.products.find({ inStock: { $not: { $eq: false } } }).limit(2) 12 13db.users.find({ $nor: [ 14{ "address.city": "Seattle" }, 15{ "address.city": "Jacksonville" } 16]}).limit(2)
1{ price: { gt: 300 } } // 错误 2{ price: { $gt: 300 } } // 正确
1// 错误:此写法不正确,因为将 $eq 用在了字段名上。 2db.users.find({ $eq: { "address.city": "Seattle" } }) 3 4// 正确:此写法有效,因为 $eq 是作用于值上的。 5db.users.find({ "address.city": { $eq: "Seattle" } })
1// 错误:此写法无法生效,因为缺少字段名。 2db.products.find({ $gt: 300 }) 3 4// 正确:此写法有效,因为指定了字段(price)。 5db.products.find({ price: { $gt: 300 } })
1// 任务 1 2 3// 任务 2 4 5// 任务 3