MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Поддокумент за връщане на MongoDB NodeJS

Това, което се опитвате да направите, би било доста тривиално във вашето приложение (т.е. 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




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Ново в MongoDB Не може да се изпълни команда mongo

  2. Получете разположението на документа в колекция въз основа на реда на сортиране

  3. Как да сравните скриптове mongodb/mongoid за сравняване на две различни техники за заявки

  4. Как правите SQL Like оператор в mongoDB, като използвате официалния C# драйвер

  5. Съвет за мигриране от MongoMapper към Mongoid?