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

Как да се присъедините към множество колекции с $lookup в mongodb

Функцията за присъединяване, поддържана от Mongodb 3.2 и по-късни версии. Можете да използвате обединения, като използвате обединяване заявка.
Можете да го направите, като използвате примера по-долу:

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",
        } 
    }
]);

Това ще даде следния резултат:

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

Надяваме се, че това ще помогне на вас или на някой друг.

Благодаря



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Актуализиране на вложени масиви в mongodb

  2. spring data mongodb група от

  3. Групиране по сума mongodb

  4. Географски разпределени комплекти реплики на MongoDB за 100% време на работа

  5. Mongodb масив $push и $pull