MongoDB
डेटा के लिए क्वेरी (आरंभ करना)
खोज…
परिचय
बुनियादी क्वेरी उदाहरण
खोजें ()
एक संग्रह में सभी दस्तावेजों को पुनः प्राप्त करें
db.collection.find({});
एक संग्रह में एक शर्त का उपयोग करके दस्तावेजों को पुनः प्राप्त करें (MYSQL में WHERE के समान)
db.collection.find({key: value});
example
db.users.find({email:"[email protected]"});
बूलियन स्थितियों (क्वेरी ऑपरेटर्स) का उपयोग करके एक संग्रह में दस्तावेजों को पुनः प्राप्त करना
//AND
db.collection.find( {
$and: [
{ key: value }, { key: value }
]
})
//OR
db.collection.find( {
$or: [
{ key: value }, { key: value }
]
})
//NOT
db.inventory.find( { key: { $not: value } } )
अधिक बूलियन ऑपरेशन और उदाहरण यहां देखे जा सकते हैं
NOTE: find () संग्रह को खोजता रहेगा भले ही एक दस्तावेज़ मिलान पाया गया हो, इसलिए बड़े संग्रह में उपयोग किए जाने पर यह अक्षम है, हालांकि सावधानीपूर्वक अपने डेटा और / या अनुक्रमित का उपयोग करके आप खोज की दक्षता बढ़ा सकते हैं ( )
ढूँढो एक()
db.collection.findOne({});
क्वेरी की कार्यक्षमता खोजने के समान है () लेकिन यह उस स्थिति को समाप्त कर देगा जब वह अपनी स्थिति से मेल खाते हुए किसी दस्तावेज़ को ढूंढता है, यदि इसका उपयोग और खाली वस्तु के साथ किया जाता है, तो यह पहला दस्तावेज़ लाएगा और इसे वापस कर देगा। findOne () mongodb एपीआई दस्तावेज
क्वेरी दस्तावेज़ - AND, OR और IN शर्तों का उपयोग करना
students
संग्रह से सभी दस्तावेज।
> db.students.find().pretty();
{
"_id" : ObjectId("58f29a694117d1b7af126dca"),
"studentNo" : 1,
"firstName" : "Prosen",
"lastName" : "Ghosh",
"age" : 25
}
{
"_id" : ObjectId("58f29a694117d1b7af126dcb"),
"studentNo" : 2,
"firstName" : "Rajib",
"lastName" : "Ghosh",
"age" : 25
}
{
"_id" : ObjectId("58f29a694117d1b7af126dcc"),
"studentNo" : 3,
"firstName" : "Rizve",
"lastName" : "Amin",
"age" : 23
}
{
"_id" : ObjectId("58f29a694117d1b7af126dcd"),
"studentNo" : 4,
"firstName" : "Jabed",
"lastName" : "Bangali",
"age" : 25
}
{
"_id" : ObjectId("58f29a694117d1b7af126dce"),
"studentNo" : 5,
"firstName" : "Gm",
"lastName" : "Anik",
"age" : 23
}
उपरोक्त आदेश के समान
mySql
क्वेरी।SELECT * FROM students;
db.students.find({firstName:"Prosen"});
{ "_id" : ObjectId("58f2547804951ad51ad206f5"), "studentNo" : "1", "firstName" : "Prosen", "lastName" : "Ghosh", "age" : "23" }
उपरोक्त आदेश के समान
mySql
क्वेरी।SELECT * FROM students WHERE firstName = "Prosen";
और प्रश्न
db.students.find({
"firstName": "Prosen",
"age": {
"$gte": 23
}
});
{ "_id" : ObjectId("58f29a694117d1b7af126dca"), "studentNo" : 1, "firstName" : "Prosen", "lastName" : "Ghosh", "age" : 25 }
उपरोक्त आदेश के समान
mySql
क्वेरी।SELECT * FROM students WHERE firstName = "Prosen" AND age >= 23
या प्रश्न
db.students.find({
"$or": [{
"firstName": "Prosen"
}, {
"age": {
"$gte": 23
}
}]
});
{ "_id" : ObjectId("58f29a694117d1b7af126dca"), "studentNo" : 1, "firstName" : "Prosen", "lastName" : "Ghosh", "age" : 25 }
{ "_id" : ObjectId("58f29a694117d1b7af126dcb"), "studentNo" : 2, "firstName" : "Rajib", "lastName" : "Ghosh", "age" : 25 }
{ "_id" : ObjectId("58f29a694117d1b7af126dcc"), "studentNo" : 3, "firstName" : "Rizve", "lastName" : "Amin", "age" : 23 }
{ "_id" : ObjectId("58f29a694117d1b7af126dcd"), "studentNo" : 4, "firstName" : "Jabed", "lastName" : "Bangali", "age" : 25 }
{ "_id" : ObjectId("58f29a694117d1b7af126dce"), "studentNo" : 5, "firstName" : "Gm", "lastName" : "Anik", "age" : 23 }
उपरोक्त आदेश के समान
mySql
क्वेरी।SELECT * FROM students WHERE firstName = "Prosen" OR age >= 23
और या प्रश्न
db.students.find({
firstName : "Prosen",
$or : [
{age : 23},
{age : 25}
]
});
{ "_id" : ObjectId("58f29a694117d1b7af126dca"), "studentNo" : 1, "firstName" : "Prosen", "lastName" : "Ghosh", "age" : 25 }
उपरोक्त आदेश के समान Myqql क्वेरी।
SELECT * FROM students WHERE firstName = "Prosen" AND age = 23 OR age = 25;
क्वेरीज़ में यह क्वेरीज़ OR क्वेरीज़ के कई उपयोग में सुधार कर सकती हैं
db.students.find(lastName:{$in:["Ghosh", "Amin"]})
{ "_id" : ObjectId("58f29a694117d1b7af126dca"), "studentNo" : 1, "firstName" : "Prosen", "lastName" : "Ghosh", "age" : 25 }
{ "_id" : ObjectId("58f29a694117d1b7af126dcb"), "studentNo" : 2, "firstName" : "Rajib", "lastName" : "Ghosh", "age" : 25 }
{ "_id" : ObjectId("58f29a694117d1b7af126dcc"), "studentNo" : 3, "firstName" : "Rizve", "lastName" : "Amin", "age" : 23 }
ऊपर के आदेश के लिए इसी तरह mySql क्वेरी
select * from students where lastName in ('Ghosh', 'Amin')
खोज () विधि प्रोजेक्शन के साथ
प्रक्षेपण के साथ find()
विधि का मूल सिंटैक्स इस प्रकार है
> db.COLLECTION_NAME.find({},{KEY:1});
यदि आप आयु क्षेत्र के बिना सभी दस्तावेजों को दिखाना चाहते हैं तो कमांड निम्नानुसार है
db.people.find({},{age : 0});
यदि आप सभी दस्तावेजों को आयु क्षेत्र दिखाना चाहते हैं तो कमांड निम्नानुसार है
खोजें () विधि प्रोजेक्शन के साथ
MongoDB में, प्रोजेक्शन का अर्थ है किसी दस्तावेज़ के संपूर्ण डेटा का चयन करने के बजाय केवल आवश्यक डेटा का चयन करना।
प्रक्षेपण के साथ find()
विधि का मूल सिंटैक्स इस प्रकार है
> db.COLLECTION_NAME.find({},{KEY:1});
यदि आप आयु क्षेत्र के बिना सभी दस्तावेज़ दिखाना चाहते हैं तो कमांड निम्नानुसार है
> db.people.find({},{age:0});
यदि आप केवल आयु क्षेत्र दिखाना चाहते हैं तो कमांड निम्नानुसार है
> db.people.find({},{age:1});
नोट: _id
फ़ील्ड हमेशा find()
विधि निष्पादित करते समय प्रदर्शित की जाती है, यदि आप इस फ़ील्ड को नहीं चाहते हैं, तो आपको इसे 0
रूप में सेट करने की आवश्यकता है।
> db.people.find({},{name:1,_id:0});
नोट: 1
का उपयोग फ़ील्ड को दिखाने के लिए किया जाता है जबकि 0
का उपयोग फ़ील्ड को छिपाने के लिए किया जाता है।
खोज () विधि के परिणामों को सीमित करें, छोड़ें, सॉर्ट करें और गिनें
एकत्रीकरण विधियों के समान भी इस खोज () विधि से आपको परिणामों को सीमित करने, छोड़ने, क्रमबद्ध करने और गिनने की संभावना है। मान लें कि हमारे पास निम्नलिखित संग्रह हैं:
db.test.insertMany([
{name:"Any", age:"21", status:"busy"},
{name:"Tony", age:"25", status:"busy"},
{name:"Bobby", age:"28", status:"online"},
{name:"Sonny", age:"28", status:"away"},
{name:"Cher", age:"20", status:"online"}
])
संग्रह को सूचीबद्ध करने के लिए:
db.test.find({})
वापस होगा:
{ "_id" : ObjectId("592516d7fbd5b591f53237b0"), "name" : "Any", "age" : "21", "status" : "busy" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b1"), "name" : "Tony", "age" : "25", "status" : "busy" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b2"), "name" : "Bobby", "age" : "28", "status" : "online" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b3"), "name" : "Sonny", "age" : "28", "status" : "away" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b4"), "name" : "Cher", "age" : "20", "status" : "online" }
पहले 3 दस्तावेजों को छोड़ने के लिए:
db.test.find({}).skip(3)
वापस होगा:
{ "_id" : ObjectId("592516d7fbd5b591f53237b3"), "name" : "Sonny", "age" : "28", "status" : "away" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b4"), "name" : "Cher", "age" : "20", "status" : "online" }
क्षेत्र के नाम से उतरते क्रमबद्ध करने के लिए:
db.test.find({}).sort({ "name" : -1})
वापस होगा:
{ "_id" : ObjectId("592516d7fbd5b591f53237b1"), "name" : "Tony", "age" : "25", "status" : "busy" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b3"), "name" : "Sonny", "age" : "28", "status" : "away" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b4"), "name" : "Cher", "age" : "20", "status" : "online" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b2"), "name" : "Bobby", "age" : "28", "status" : "online" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b0"), "name" : "Any", "age" : "21", "status" : "busy" }
यदि आप आरोही को क्रमबद्ध करना चाहते हैं तो -1 को 1 से बदलें
परिणामों की गणना करने के लिए:
db.test.find({}).count()
वापस होगा:
5
इस तरीके के संयोजन की भी अनुमति है। उदाहरण के लिए, पहले 1 से उतरते क्रमबद्ध संग्रह से 2 दस्तावेज़ प्राप्त करें:
db.test.find({}).sort({ "name" : -1}).skip(1).limit(2)
वापस होगा:
{ "_id" : ObjectId("592516d7fbd5b591f53237b3"), "name" : "Sonny", "age" : "28", "status" : "away" }
{ "_id" : ObjectId("592516d7fbd5b591f53237b4"), "name" : "Cher", "age" : "20", "status" : "online" }