db.collection(USERDETAILS_COLLECTION).findOneAndUpdate(
{ "emailVerificationHistory.verifyCode":mailCode },
{'$pull':{"emailVerificationHistory.$.verifyCode":mailCode}},
function(err,pullData) {
if(err) {
console.log(err);
} else {
res.send({msg: 'User Verified Succesfully', status: 1});
}
});
When I execute the above code, I am getting the following error.
name: 'MongoError',
message: 'Cannot apply $pull to a non-array value',
ok: 0,
errmsg: 'Cannot apply $pull to a non-array value',
code: 16837,
Below is my MongoDB object.
{
"_id" : ObjectId("593270b8bc98ea235cfaf68f"),
"username" : "parengalhisham@gmail.com",
"roleId" : 3,
"userId" : ObjectId("593270b8bc98ea235cfaf68e"),
"profile" : {
"firstName" : "Hisham",
"lastName" : "Mubarak"
},
"activeFlag" : 1,
"authType" : [
"facebook"
],
"emailVerified" : false,
"emailVerificationHistory" : [
{
"email" : "parengalhisham@gmail.com",
"verifyCode" : "59327155480b791b7845dfd7",
"requestDate" : ISODate("2017-06-03T08:20:37.156Z"),
"verifiedDate" : ISODate("2017-06-03T10:31:53.720Z")
}
]
}
How do I search through the emailVerificationHistory array using verifyCode and remove the verifyCode only from that first object inside array? Thank you for your help in advance.
via Hisham Mubarak
No comments:
Post a Comment