MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Poddokument MongoDB NodeJS Return

To, co próbujesz zrobić, byłoby dość trywialne w Twojej aplikacji (np. kod JS po findOne ), ale jeśli naprawdę chcesz to zrobić w mongodb, musisz użyć agregacji. Zmień kod na:

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')
}

Oto aktualne zapytanie agregujące, z którym możesz się pobawić:https://mongoplayground.net/p/ o-xTTa8R42w




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zapytanie MongoDB we wszystkich kolekcjach podzielonych na fragmenty bez klucza shardkey

  2. Architektura systemu logowania na stosie MEAN?

  3. Mangusta z replikąUstaw na Atlas

  4. Schemat Mongoose ustawia sygnaturę czasową w zagnieżdżonym dokumencie

  5. Użyj createView z allowDiskUse