MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MySQL से MongoDB - एक एडमिन चीट शीट

अधिकांश सॉफ्टवेयर एप्लिकेशन आजकल एप्लिकेशन में ही व्यापक भविष्य के संदर्भ के लिए कुछ गतिशील डेटा स्टोरेज शामिल करते हैं। हम सभी जानते हैं कि डेटा एक डेटाबेस में संग्रहीत होता है जो दो श्रेणियों में आता है:रिलेशनल और नॉन-रिलेशनल डीबीएमएस।

इन दोनों में से आपका चयन पूरी तरह से आपकी डेटा संरचना, शामिल डेटा की मात्रा, डेटाबेस प्रदर्शन और मापनीयता पर निर्भर करेगा।

रिलेशनल डीबीएमएस डेटा को पंक्तियों के रूप में तालिकाओं में संग्रहीत करता है जैसे कि वे संरचित क्वेरी भाषा (एसक्यूएल) का उपयोग करते हैं, जिससे वे कई लेनदेन से जुड़े अनुप्रयोगों के लिए एक अच्छा विकल्प बन जाते हैं। इनमें MySQL, SQLite और PostgreSQL शामिल हैं।

दूसरी ओर, मोंगोडीबी जैसे नोएसक्यूएल डीबीएमएस दस्तावेज़-उन्मुख हैं जैसे कि दस्तावेज़ों के संदर्भ में डेटा संग्रह में संग्रहीत किया जाता है। यह डेटा के एक बड़े सेट के लिए अधिक भंडारण क्षमता देता है इसलिए मापनीयता में एक और लाभ होता है।

इस ब्लॉग में हम मान रहे हैं कि आपके पास MongoDB या MySQL के लिए बेहतर ज्ञान है और इसलिए क्वेरी और डेटाबेस संरचना के संदर्भ में दोनों के बीच के संबंध को जानना चाहेंगे।

नीचे एक चीट शीट दी गई है जिससे आप खुद को मोंगोडीबी के लिए MySQL की क्वेरी से परिचित करा सकते हैं।

MySQL से MongoDB चीट शीट - शर्तें

MySQL शर्तें MongoDB शर्तें स्पष्टीकरण
तालिका संग्रह यह डेटा के लिए भंडारण कंटेनर है जो निहित वस्तुओं में समान होता है।
पंक्ति दस्तावेज़ MongoDB के मामले में MySQL और संग्रह के लिए तालिका में एकल ऑब्जेक्ट इकाई को परिभाषित करता है।
कॉलम फ़ील्ड प्रत्येक संग्रहीत वस्तु के लिए, इसमें गुण होते हैं जो विभिन्न मूल्यों और डेटा प्रकारों द्वारा परिभाषित किए जाते हैं। MongoDB में, एक ही संग्रह के दस्तावेज़ों में एक दूसरे से भिन्न फ़ील्ड हो सकते हैं। MySQL में, प्रत्येक पंक्ति को मौजूदा कॉलम के समान कॉलम के साथ परिभाषित किया जाना चाहिए।
प्राथमिक कुंजी प्राथमिक कुंजी मोंगोडीबी के मामले में प्रत्येक संग्रहीत वस्तु को एक अद्वितीय फ़ील्ड मान के साथ पहचाना जाता है, हमारे पास _id फ़ील्ड स्वचालित रूप से सेट होती है जबकि MySQL में आप अपनी प्राथमिक कुंजी को परिभाषित कर सकते हैं जो नई पंक्तियां बनाते समय वृद्धिशील होती है।
टेबल जॉइन दस्तावेज़ों को एम्बेड और लिंक करना किसी भिन्न संग्रह/तालिका में किसी ऑब्जेक्ट से संबद्ध किसी अन्य संग्रह/तालिका में डेटा से कनेक्शन।
कहां $मिलान मानदंड से मेल खाने वाले डेटा का चयन करना।
समूह $group कुछ मानदंडों के अनुसार डेटा समूहित करना।
छोड़ें $unset पंक्ति/दस्तावेज़ से कॉलम/फ़ील्ड हटाना/
सेट $सेट मौजूदा कॉलम/फ़ील्ड के मान को नए मान पर सेट करना।
मोंगोडीबी डीबीए बनें - मोंगोडीबी को प्रोडक्शन में लाना सीखें कि मोंगोडीबी को तैनात करने, मॉनिटर करने, प्रबंधित करने और स्केल करने के लिए आपको क्या जानने की जरूरत है मुफ्त में डाउनलोड करें

स्कीमा विवरण

MySQL तालिका विवरण MongoDB संग्रह विवरण स्पष्टीकरण

डेटाबेस और टेबल स्पष्ट रूप से PHP व्यवस्थापक पैनल के माध्यम से बनाए जाते हैं या एक स्क्रिप्ट के भीतर परिभाषित किए जाते हैं अर्थात

डेटाबेस बनाना

CREATE DATABASE database_name

टेबल बनाना

CREATE TABLE users (
    id MEDIUMINT NOT NULL
        AUTO_INCREMENT,
    UserId Varchar(30),
    Age Number,
    Gender char(1),
    Name VarChar(222),
    PRIMARY KEY (id)
)

डेटाबेस को परोक्ष रूप से या स्पष्ट रूप से बनाया जा सकता है। स्पष्ट रूप से पहले दस्तावेज़ डालने के दौरान डेटाबेस और संग्रह बनाया जाता है और साथ ही इस दस्तावेज़ में एक स्वचालित _id फ़ील्ड जोड़ा जा रहा है।

db.users.insert( {
    UserId: "user1",
    Age: 55,
    Name: "Berry Hellington",
    Gender: "F",
 } )

आप इस टिप्पणी को Mongo Shell में चलाकर स्पष्ट रूप से डेटाबेस भी बना सकते हैं

db.createCollection("users")

MySQL में, आपको अपने द्वारा बनाई जा रही तालिका में कॉलम निर्दिष्ट करने के साथ-साथ कुछ सत्यापन नियम भी सेट करने होंगे जैसे कि इस उदाहरण में डेटा का प्रकार और लंबाई जो किसी विशिष्ट कॉलम पर जाती है। MongoDB के मामले में, यह परिभाषित करना आवश्यक नहीं है कि न तो प्रत्येक दस्तावेज़ में फ़ील्ड्स होनी चाहिए और न ही सत्यापन नियम निर्दिष्ट फ़ील्ड्स को होल्ड करना चाहिए।

हालाँकि, डेटा अखंडता और स्थिरता के लिए MongoDB में आप JSON SCHEMA VALIDATOR

का उपयोग करके सत्यापन नियम निर्धारित कर सकते हैं।

टेबल गिराना

DROP TABLE users
db.users.drop()

यह मोंगोडीबी के मामले में MySQL और संग्रह के लिए एक तालिका को हटाने के लिए बयान हैं।

join_date नामक एक नया कॉलम जोड़ना

ALTER TABLE users ADD join_date DATETIME

अगर पहले से परिभाषित है तो join_date कॉलम को हटाना

ALTER TABLE users DROP COLUMN join_date DATETIME

join_date नामक एक नई फ़ील्ड जोड़ना

db.users.updateMany({},{$set:{‘join_date’: new Date()})

यह संग्रह के सभी दस्तावेज़ों को अद्यतन करेगा ताकि शामिल होने की तिथि वर्तमान तिथि के रूप में हो।

अगर पहले से परिभाषित है तो join_date फ़ील्ड को हटाना

db.users.updateMany({},{$unset:{‘join_date’: “”})

यह सभी संग्रह दस्तावेज़ों से join_date फ़ील्ड को हटा देगा।

किसी कॉलम/फ़ील्ड को जोड़कर या छोड़ कर स्कीमा की संरचना को बदलना।

चूंकि MongoDB आर्किटेक्चर दस्तावेज़ संरचना पर सख्ती से लागू नहीं होता है, दस्तावेज़ों के फ़ील्ड एक दूसरे से भिन्न हो सकते हैं।

UserId कॉलम आरोही और आयु अवरोही के साथ एक इंडेक्स बनाना

CREATE INDEX idx_UserId_asc_Age_desc
ON users(UserId)

UserId और आयु क्षेत्रों को शामिल करते हुए एक अनुक्रमणिका बनाना।

db.users.ensureIndex( { UserId: 1, Age: -1 } )

इंडेक्स आमतौर पर पूछताछ प्रक्रिया को सुविधाजनक बनाने के लिए बनाए जाते हैं।

INSERT INTO users(UserId,
                  Age,
                  Gender)
VALUES ("user1",
        25,
        "M")
db.users.insert( {
       UserId: "bcd001",
       Age: 25,
       Gender: "M",
     Name: "Berry Hellington",
} )

नए रिकॉर्ड सम्मिलित करना।

DELETE FROM users
WHERE Age = 25
db.users.deleteMany( { Age = 25 } )

तालिका/संग्रह से रिकॉर्ड हटाना जिनकी आयु 25 के बराबर है।

DELETE FROM users
db.users.deleteMany({})

तालिका/संग्रह से सभी रिकॉर्ड हटाना।

SELECT * FROM users
db.users.find()

सभी कॉलम/फ़ील्ड के साथ उपयोगकर्ता तालिका/संग्रह से सभी रिकॉर्ड लौटाता है।

SELECT id, Age, Gender FROM users
db.users.find(
   { },
   { Age: 1, Gender: 1 }
)

आयु, लिंग और प्राथमिक कुंजी कॉलम/फ़ील्ड के साथ उपयोगकर्ता तालिका/संग्रह से सभी रिकॉर्ड लौटाता है।

SELECT  Age, Gender FROM users
db.users.find(
   { },
 { Age: 1, Gender: 1,_id: 0}
)

आयु और लिंग कॉलम/फ़ील्ड के साथ उपयोगकर्ता तालिका/संग्रह से सभी रिकॉर्ड लौटाता है। प्राथमिक कुंजी छोड़ी गई है।

SELECT * FROM users WHERE Gender = “M”
db.users.find({ Gender: "M"})

उपयोगकर्ता तालिका/संग्रह से सभी रिकॉर्ड लौटाता है जिसका लिंग मान एम पर सेट है।

SELECT Gender FROM users WHERE Age = 25
db.users.find({ Age: 25}, { _id: 0, Gender: 1})

उपयोगकर्ता तालिका/संग्रह के सभी रिकॉर्ड केवल लिंग मान के साथ लौटाता है, लेकिन जिनकी आयु मान 25 के बराबर है।

SELECT * FROM users WHERE Age = 25 AND Gender = ‘F’
db.users.find({ Age: 25, Gender: "F"})

उपयोगकर्ता तालिका/संग्रह से सभी रिकॉर्ड लौटाता है जिसका लिंग मान F पर सेट है और आयु 25 है।

SELECT * FROM users WHERE  Age != 25
db.users.find({ Age:{$ne: 25}})

उन उपयोगकर्ता तालिका/संग्रह से सभी रिकॉर्ड लौटाता है जिनका आयु मान 25 के बराबर नहीं है।

SELECT * FROM users WHERE Age = 25 OR Gender = ‘F’
db.users.find({$or:[{Age: 25, Gender: "F"}]})

उपयोगकर्ता तालिका/संग्रह से सभी रिकॉर्ड लौटाता है जिसका लिंग मान F या आयु 25 पर सेट है।

SELECT * FROM users WHERE Age > 25
db.users.find({ Age:{$gt: 25}})

उन उपयोगकर्ता तालिका/संग्रह से सभी रिकॉर्ड लौटाता है जिनका आयु मान 25 से अधिक है।

SELECT * FROM users WHERE Age <= 25
db.users.find({ Age:{$lte: 25}})

उन उपयोगकर्ता तालिका/संग्रह से सभी रिकॉर्ड लौटाता है जिनका आयु मान 25 से कम या उसके बराबर है।

SELECT Name FROM users WHERE Name like "He%"
db.users.find(
  { Name: /He/ }
)

उपयोगकर्ता तालिका/संग्रह से सभी रिकॉर्ड लौटाता है जिनके नाम मान में वह अक्षर होते हैं।

SELECT * FROM users WHERE Gender = ‘F’ ORDER BY id ASC
db.users.find( { Gender: "F" } ).sort( { $natural: 1 } )

उपयोगकर्ता तालिका/संग्रह से सभी रिकॉर्ड लौटाता है जिसका लिंग मान F पर सेट है और इस परिणाम को MySQL के मामले में आईडी कॉलम के आरोही क्रम में और MongoDB के मामले में सम्मिलित समय में सॉर्ट करता है।

SELECT * FROM users WHERE Gender = ‘F’ ORDER BY id DESC
db.users.find( { Gender: "F" } ).sort( { $natural: -1 } )

उपयोगकर्ता तालिका/संग्रह से सभी रिकॉर्ड लौटाता है जिसका लिंग मान F पर सेट है और इस परिणाम को MySQL के मामले में आईडी कॉलम के अवरोही क्रम में और MongoDB के मामले में सम्मिलित समय में सॉर्ट करता है।

SELECT COUNT(*) FROM users
db.users.count()

या

db.users.find().count()

उपयोगकर्ता तालिका/संग्रह में सभी रिकॉर्ड की गणना करता है।

SELECT COUNT(Name) FROM users
db.users.count({Name:{ $exists: true }})

या

db.users.find({Name:{ $exists: true }}).count()

उपयोगकर्ता तालिका/संग्रह में सभी रिकॉर्ड की गणना करता है जिनके पास नाम संपत्ति के लिए मूल्य होता है।

SELECT * FROM users LIMIT 1
db.users.findOne()

या

db.users.find().limit(1)

उपयोगकर्ता तालिका/संग्रह में पहला रिकॉर्ड लौटाता है।

SELECT * FROM users WHERE Gender = ‘F’ LIMIT 1
db.users.find( { Gender: "F" } ).limit(1)

उपयोगकर्ता तालिका/संग्रह में पहला रिकॉर्ड लौटाता है जिसका लिंग मान F के बराबर होता है।

SELECT * FROM users LIMIT 5 SKIP 10
db.users.find().limit(5).skip(10)

पहले पांच रिकॉर्ड छोड़ने के बाद उपयोगकर्ता तालिका/संग्रह में पांच रिकॉर्ड लौटाता है।

UPDATE users SET Age = 26 WHERE age > 25
db.users.updateMany(
  { age: { $gt: 25 } },
  { $set: { Age: 26 } }
)

यह उपयोगकर्ता तालिका/संग्रह में सभी रिकॉर्ड की आयु निर्धारित करता है जिनकी आयु 25 से 26 वर्ष से अधिक है।

UPDATE users SET age = age + 1
db.users.updateMany(
  {} ,
  { $inc: { age: 1 } }
)

इससे उपयोगकर्ता तालिका/संग्रह में सभी रिकॉर्ड की आयु 1 से बढ़ जाती है।

UPDATE users SET age = age - 1
WHERE id = 1
db.users.updateMany(
  {} ,
  { $inc: { age: -1 } }
)

यह उपयोगकर्ता तालिका/संग्रह में पहले रिकॉर्ड की आयु को 1 से घटा देता है।

MySQL और/या MongoDB को केंद्रीय रूप से और एक ही बिंदु से प्रबंधित करने के लिए, यहां जाएं:https://severalnines.com/product/clustercontrol.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. django + पायमोंगो पूलिंग का सर्वोत्तम अभ्यास?

  2. वर्तमान दस्तावेज़ फ़ील्ड मान के भीतर भू-स्थानिक $नियर

  3. रेल + मोंगोमैपर + एंबेडेड डॉक्यूमेंट फॉर्म मदद

  4. MongoDb c# ड्राइवर फ़ील्ड मान द्वारा सरणी में आइटम ढूंढता है

  5. मोंगोडब एग्रीगेशन फ्रेमवर्क:क्या $group इंडेक्स का उपयोग करता है?