O que você está tentando fazer seria bastante trivial em seu aplicativo (ou seja, código JS após
findOne
), mas se você realmente quiser fazer isso no mongodb, precisará usar agregação. Altere seu código para:const username = req.body.User.Username;
const user = await Account.aggregate([
{
$match: {
"Users.Username": username
}
},
{
"$project": {
_id: false,
USER: {
$filter: {
input: "$Users",
as: "users",
cond: {
$eq: [
"$$users.Username",
username
]
}
}
}
}
},
{
"$unwind": "$USER"
},
{
"$project": {
USER_PIN: "$USER.PIN"
}
}
]);
if(user.length){
console.log(user[0].USER_PIN)
}else{
console.log('Username not found')
}
Aqui está a consulta de agregação real para você brincar:https://mongoplayground.net/p/ o-xTTa8R42w