$setEquals(判断集合是否相等)
最后更新:2026-10-09
$setEquals(判断集合是否相等)
$setEquals 判断两个或多个数组作为集合是否相等,忽略顺序和重复。典型场景包括校验两组权限是否一致、对比配置和默认值是否相同。它支持多参数,所有数组的集合相等才返回 true。null 元素会被忽略,因此含 null 的数组比较时相当于不含 null。集合相等不要求元素顺序一致,[1, 2] 与 [2, 1] 判定相等。
| 分类 | 集合·条件·转换 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $setEquals: [ <数组1>, <数组2>, ... ] }
⚙️ 参数
| 数组 | 至少两个要比较的数组。 |
|---|
返回值:所有数组作为集合相等时返回 true,否则 false
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $setEquals:两组权限是否一致
db.roles.aggregate([
{ $project: {
samePerms: { $setEquals: ['$userPerms', '$defaultPerms'] }
} }
])
运行结果:
{ '_id': 1, 'samePerms': true }
📌 注意事项
- 忽略顺序和重复:[1, 2] 与 [2, 1, 1] 判定相等
- 支持多参数,全部相等才返回 true
- null 元素被忽略,比较时视作不存在
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q顺序不同会影响结果吗?
A不会,集合比较忽略顺序。
Q支持几个参数?
A至少两个,多个数组全部集合相等才返回 true。
Q包含 null 会怎样?
Anull 元素被忽略,比较结果与不含 null 相同。