You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mongoose中查询排除含'Admin':2000角色的所有用户?

在Mongoose中排除含特定Admin角色值的用户查询方案

要实现获取所有用户,但排除roles对象中包含Admin:2000的用户(无论该用户是否拥有其他角色),可以使用以下两种查询方式:

简洁写法

利用MongoDB的$ne操作符,它会同时匹配没有Admin角色和**Admin角色值不等于2000**的文档:

const users = await User.find({
  "roles.Admin": { $ne: 2000 }
});

直观写法(明确逻辑)

如果需要更清晰地表达逻辑,可以用$or组合两个条件,分别匹配无Admin角色和Admin值非2000的情况:

const users = await User.find({
  $or: [
    { "roles.Admin": { $exists: false } },
    { "roles.Admin": { $ne: 2000 } }
  ]
});

逻辑说明

  • 对于像示例中Admin:555的用户,两种写法都会将其纳入查询结果;
  • 任何roles.Admin值为2000的用户,无论是否拥有User、Editor等其他角色,都会被排除;
  • 完全没有Admin角色的普通用户,也会被正常返回。

内容的提问来源于stack exchange,提问作者Uriel Espada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 20:25:30