簡體   English   中英

Mongoose查詢布爾字段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM