MongoDB条件过滤查询:Market角色用户数据权限控制
MongoDB Market角色用户的用户列表过滤查询
要实现market角色用户查询时仅看到自身及非market角色的用户,无需手动排除其他market用户(自动适配新注册的market账号),可以用$or组合两个匹配条件,直接在mongosh中执行以下查询:
查询语句(根据用户ID类型调整)
如果你的用户ID是数字类型(比如示例中的id=2):
db.users.find({ $or: [ { _id: 2 }, // 匹配当前market用户自身 { role: { $ne: "market" } } // 匹配所有非market角色的用户(supervisor、client) ] })
如果用户ID是MongoDB默认的ObjectId类型:
db.users.find({ $or: [ { _id: ObjectId("你的market用户ID") }, // 替换为当前用户的实际ObjectId { role: { $ne: "market" } } ] })
逻辑说明
$or操作符会返回满足任意一个条件的文档:- 第一个条件精准匹配当前market用户的ID,确保能看到自己的信息
- 第二个条件通过
$ne(不等于)过滤掉所有role为market的用户,自动排除其他所有market账号(包括新注册的),只保留supervisor和client角色的用户
这个方案无需维护排除列表,完全适配动态新增的market用户,符合需求。
内容的提问来源于stack exchange,提问作者Islam Y-
相关产品推荐
相关产品推荐

