Това, което се опитвате да направите, би било доста тривиално във вашето приложение (т.е. JS код след findOne
), но ако наистина искате да го направите в mongodb, тогава ще трябва да използвате агрегиране. Променете кода си на:
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')
}
Ето действителната заявка за агрегиране, с която можете да си поиграете:https://mongoplayground.net/p/ o-xTTa8R42w