MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Kembalikan subdokumen MongoDB NodeJS

Apa yang Anda coba lakukan akan sangat sepele di aplikasi Anda (yaitu kode JS setelah findOne ), tetapi jika Anda benar-benar ingin melakukannya di mongodb, maka Anda harus menggunakan agregasi. Ubah kode Anda menjadi:

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

Berikut adalah kueri agregasi yang sebenarnya untuk Anda mainkan:https://mongoplayground.net/p/ o-xTTa8R42w




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. urutkan berdasarkan tanggal dengan permintaan agregat di mongodb

  2. Simpan bidang putus-putus di MongoDB

  3. Delegasi metaclass tidak menjadi instance

  4. Bagaimana-untuk:Pengguna memiliki penggemar

  5. Temukan data 15 menit dengan bidang ObjectID