Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MongoDB कुल क्वेरी बनाम MySQL तालिका से फ़ील्ड 1 चुनें

कर्मचारी एकल संस्थाएं हैं; इस प्रकार, आप शायद age . मॉडल नहीं बनाना चाहते हैं विभागों और स्थानों और टीमों की समृद्ध संरचना में एक टीम के सदस्य की इतनी गहराई से। एक अलग employees होना बिल्कुल ठीक है संग्रह करें और बस करें:

db.businesses.aggregate([
{$match: {"age": {$gt: 50} }}
,{$sort: {"age": -1} }
]);

अपने businesses में गहराई से देखें संग्रह आपके पास हो सकता है:

{ teams: [ {name: "T1", employees: [ "E1", "E34" ]} ] }

वैकल्पिक रूप से, यह प्रयास करें:

db.businesses.aggregate([ your pipeline] ,{allowDiskUse:true});

ओपी में 10 बिज़ -> 10 लोक -> 10 विभाग -> 10 टीमें -> 100 एम्पीएस का सेटअप है। पहले 3 अनविंड डेटा का 10000x विस्फोट बनाता है लेकिन अंतिम उससे 100 गुना अधिक है। हम $filter . का उपयोग करके हिट को छोटा कर सकते हैं :

db.businesses.aggregate([
{ $unwind: "$locations" },
{ $unwind: "$locations.departments" },
{ $unwind: "$locations.departments.teams" },

{$project: {
        XX: {$filter: {
                    input: "$locations.departments.teams.employees",
                    as: "z",
                    cond: {$gte: [ "$$z.age", 50] }
            }}
    }}
,{$unwind: "$XX"}
,{$sort: {"XX.age":-1}}])


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक MySQL क्वेरी को CSV में बदलने के लिए PHP कोड

  2. यह स्ट्रिंग किस प्रकार की है? a:1:{s:2:en;}

  3. SQL समूह के nवें सदस्य का चयन करें

  4. mysql में एक कॉलम में शीर्ष 10 सबसे अधिक होने वाले मानों की गणना करें

  5. स्थानीय मशीन से AWS पर MySQL से कनेक्ट करें