[英]Mongoose Query for Boolean field
要查詢布爾字段,我必須使用“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" })
請幫忙。
根據您的模型,您應首先更新您的文檔,使用更新方法將"false"
更改為false
如下所示:
MyModel.update({},{"$set":{"isPrivate":false}},{ multi: true })
如果您不習慣更新文檔,那么您應該像這樣使用$or or $in
MyModel.find({ $or:[ {'isPrivate':"false"}, {'isPrivate':false} ]})
MyModel.find({ "isPrivate": { "$in": ["false",false] } })
如果通過添加新路徑更新架構並使用此新架構創建新文檔並存儲在具有使用舊架構創建的舊文檔的集合中,則將遇到此問題。 就我而言,我添加了布爾路徑rated
為“默認”:假到我的jobs
集合已有文檔,而這個領域。 當我在下面發現查詢時
Job.find({rated: false}, cb)
即使有被rated: false
作業,查詢也會返回一個空光標。
我只能通過跳轉到控制台和更新與現場所有作業的文件解決了這個問題rated
使用默認值false
。 之后,我的查詢返回了與數據庫一致的游標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.