I have a collection. I want to get only those objects of user_surveys
array where survey_delete_flag
is 0
{
"_id":"5d38395531335242147f9341",
"user_status":"Active",
"user_surveys":[
{
"survey_id":"1563965898505",
"survey_name":"Deepak Survey",
"survey_delete_flag":0,
"survey_status":"Active"
},
{
"survey_id":"1563971438976",
"survey_name":"Infra Survey",
"survey_delete_flag":0,
"survey_status":"Active"
},
{
"survey_id":"1564059777417",
"survey_name":"Infra2 Survey",
"survey_delete_flag":1,
"survey_status":"Active"
}
]
}
I am using mongodb npm library and tried like below but it's return all document that match with _id
only.
let query = {_id: new objectId(authenication.loggedUser.user_id)}
let subquery= {user_surveys: {$elemMatch: {survey_delete_flag:0}}}
survey_db.collection('user_registration').findOne(query,subquery,(err,
doc) => {
if (!err) {
console.log(doc)
res.json({ res: doc.user_surveys })
} else {
return res.json({ err: err })
}
}
I am expecting results like this
[
{
"survey_id":"1563965898505",
"survey_name":"Deepak Survey",
"survey_delete_flag":0,
"survey_status":"Active"
},
{
"survey_id":"1563971438976",
"survey_name":"Infra Survey",
"survey_delete_flag":0,
"survey_status":"Active"
}
]