一、`$in` 操作符
1. 功能
`$in` 操作符用于匹配字段值等于指定数组中任意值的文档,能批量查找多个特定值的文档。
2. 语法示例
javascript
db.collection.find({ field: { $in: [value1, value2, ...] } });
3. 代码示例
假设有个名为 `users` 的集合,里面存有用户信息,若要查找 `age` 为 20、25 或 30 的用户,可使用以下代码:
javascript
db.users.find({ age: { $in: [20, 25, 30] } });
二、`$nin` 操作符
1. 功能
`nin\` 是 \`in` 的反操作符,用于匹配字段值不在指定数组中的文档,可批量排除多个特定值的文档。
2. 语法示例
javascript
db.collection.find({ field: { $nin: [value1, value2, ...] } });
3. 代码示例
还是在 `users` 集合中,若要查找 `age` 不是 20、25 或 30 的用户,可使用以下代码:
javascript
db.users.find({ age: { $nin: [20, 25, 30] } });
三、`$or` 操作符
1. 功能
`$or` 操作符能将多个查询条件组合起来,只要满足其中一个条件的文档就会被返回,可用于批量查找符合多个不同条件的文档。
2. 语法示例
javascript
db.collection.find({
$or: [
{ condition1 },
{ condition2 },
...
]
});
- 代码示例
在 `users` 集合中,若要查找 `age` 为 20 或者 `name` 为 "John" 的用户,可使用以下代码:
javascript
db.users.find({
$or: [{ age: 20 }, { name: "John" }],
});
四、`$and` 操作符
1. 功能
`$and` 操作符将多个查询条件组合,文档必须同时满足所有条件才会被返回,常用于批量查找同时符合多个条件的文档。
2. 语法示例
javascript
db.collection.find({
$and: [
{ condition1 },
{ condition2 },
...
]
});
3. 代码示例
在 `users` 集合中,若要查找 `age` 大于 20 且 `name` 为 "John" 的用户,可使用以下代码:
javascript
db.users.find({
$and: [{ age: { $gt: 20 } }, { name: "John" }],
});
五、范围查询操作符(`gt\`、\`lt`、`gte\`、\`lte`)
1. 功能
这些操作符能批量查找字段值在某个范围内的文档,`gt\` 表示大于,\`lt` 表示小于,`gte\` 表示大于等于,\`lte` 表示小于等于。
2. 语法示例
javascript
// 大于
db.collection.find({ field: { $gt: value } });
// 小于
db.collection.find({ field: { $lt: value } });
// 大于等于
db.collection.find({ field: { $gte: value } });
// 小于等于
db.collection.find({ field: { $lte: value } });
3. 代码示例
在 `users` 集合中,若要查找 `age` 大于 20 且小于 30 的用户,可使用以下代码:
javascript
db.users.find({ age: { $gt: 20, $lt: 30 } });