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

Cara menggabungkan beberapa koleksi dengan $lookup di mongodb

Fitur bergabung didukung oleh Mongodb 3.2 dan versi yang lebih baru. Anda dapat menggunakan gabungan dengan menggunakan agregat query.
Anda dapat melakukannya dengan menggunakan contoh di bawah ini :

db.users.aggregate([

    // Join with user_info table
    {
        $lookup:{
            from: "userinfo",       // other table name
            localField: "userId",   // name of users table field
            foreignField: "userId", // name of userinfo table field
            as: "user_info"         // alias for userinfo table
        }
    },
    {   $unwind:"$user_info" },     // $unwind used for getting data in object or for one record only

    // Join with user_role table
    {
        $lookup:{
            from: "userrole", 
            localField: "userId", 
            foreignField: "userId",
            as: "user_role"
        }
    },
    {   $unwind:"$user_role" },

    // define some conditions here 
    {
        $match:{
            $and:[{"userName" : "admin"}]
        }
    },

    // define which fields are you want to fetch
    {   
        $project:{
            _id : 1,
            email : 1,
            userName : 1,
            userPhone : "$user_info.phone",
            role : "$user_role.role",
        } 
    }
]);

Ini akan memberikan hasil seperti ini:

{
    "_id" : ObjectId("5684f3c454b1fd6926c324fd"),
    "email" : "[email protected]",
    "userName" : "admin",
    "userPhone" : "0000000000",
    "role" : "admin"
}

Semoga ini bisa membantu Anda atau orang lain.

Terima kasih



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Gagal terhubung ke 127.0.0.1:27017, alasan:errno:111 Koneksi ditolak

  2. Bagaimana cara mendapatkan data ReferenceField di mongoengine?

  3. Dorong dan Setel Operasi dalam Pembaruan MongoDB yang Sama

  4. Array bersarang $pull query menggunakan driver C# MongoDB

  5. Mendapatkan daftar objek tersemat/bersarang unik dalam dokumen MongoDB