[英]I want to query with elemmatch
我的 mongoose 架構例如:
const newwant = new mongoose.Schema({
statuscol : {
type : Boolean,
default : false,
required :true
}
})
const Rooms = new mongoose.Schema({
createdBy : {
type : String,
required : true
},
Roomname : {
type : String,
required : true
},
createdDate : {
type : Date,
default : Date.now
},
Message : [{
username : String,
date : Date
}],
wants : [newwant]
})
一個我用express寫的api會加進去,false值可以返回true。 我現在要做的是只凍結其值在想要數組中的對象。
我為此嘗試了這樣的代碼,但沒有用
router.get("/accepted",async(req,res) => {
try{
rooms.findById(req.body.id,{wants : {$elemMatch : {"statuscol" : true}}},
function(err, result) {
if (err) {
res.send(err);
} else {
res.json(result);
}
}
)
}catch(err){
console.log(err)
}
})
當我運行此代碼時,即使集合中有 2 個 true,它也只會凍結一個 object,所以它對我不起作用,如果您能提供幫助,我會很高興,您可以詢問您是否有任何問題。
"mongoose": "^5.12.2"
findById()
觸發findOne()
中間件。 所以,使用find( {_id: req.body.id} )
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.