【发布时间】:2019-06-06 01:19:56
【问题描述】:
要查询布尔字段,我必须使用“false”而不是 false。 我正在使用 Mongoose 和 Node JS。
Mongodb 架构定义:
var MySchema = new mongoose.Schema({
isPrivate: { type: Boolean, default: false }
})
db.model('MyModel', MySchema);
查询:
MyModel.find({ isPrivate: false })
上面的查询不返回任何数据集,而下面的代码返回。
MyModel.find({ isPrivate: "false" })
请帮忙。
【问题讨论】:
-
帮助具体是什么?您有一个可行的解决方案。
-
是否应该将布尔值作为字符串进行比较?
-
您能否通过在您的代码中添加
mongoose.set('debug', true);来启用调试并查看正在生成的查询?由于基于模式的转换,这两个 Mongoose 查询应该产生相同的本机查询。 -
它们生成完全相同的本机查询。我通过向每个现有文档添加 isPrivate 字段解决了这个问题。我最近通过添加属性更改了我的架构并忘记更新文档。谢谢。