Boolean(布尔值)
最后更新:2026-10-09
Boolean(布尔值)
Boolean表示真/假,只有true和false两个值,适合标志位与开关(如isActive、isDeleted)。查询直接匹配字段值即可;注意字段不存在与false是不同的状态,用`$exists`区分。不要存0/1或'yes'/'no'字符串,会造成类型混乱。
| 分类 | BSON 类型 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ isActive: true }
db.users.find({ isActive: false })
db.users.find({ isActive: { $exists: false } })
返回值:布尔值true或false;查询时返回匹配文档
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// Boolean:标志位筛选
use shop
db.users.insertOne({ name: 'alice', isActive: true })
db.users.find({ isActive: true })
运行结果:
{ _id: ObjectId('...'), name: 'alice', isActive: true }
📌 注意事项
- 只有true/false,别用0/1字符串代替
- 字段缺失与false不同,用$exists区分
- 聚合中$cond可与布尔值配合做条件分支
🏷️ 相关标签
💡 相关案例
📚 相关教程
❓ 常见问题
Q布尔字段能建索引吗?
A可以,但布尔值只有两种取值,区分度低,通常与其他字段组合成复合索引。
QisActive:false和字段不存在一样吗?
A不一样。直接查false匹配值为false的文档;字段缺失要用$exists:false匹配。
Q能用0/1代替布尔吗?
A不建议。混存数字与布尔会导致查询和聚合类型判断出错,统一用true/false。