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