Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में विशिष्ट फ़ील्ड मान प्राप्त करें

MongoDB में $in ऑपरेटर का उपयोग करके एकाधिक मानों के लिए क्वेरी करना

$in ऑपरेटर उन दस्तावेज़ों का चयन करता है जहां किसी फ़ील्ड का मान निर्दिष्ट ऐरे में किसी भी मान के बराबर होता है। यह एकाधिक $or शर्तों का संक्षिप्त रूप है।

सैंपल डेटा बनाना (इंडेक्स के साथ)

> db.indexesDemo.createIndex({"StudentFirstName":1});
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
> db.indexesDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Smith"});
> db.indexesDemo.insertOne({"StudentFirstName":"Chris","StudentLastName":"Brown"});
> db.indexesDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Doe"});
> db.indexesDemo.insertOne({"StudentFirstName":"David","StudentLastName":"Miller"});

सभी दस्तावेज़ देखना

> db.indexesDemo.find();

आउटपुट:


$in के साथ क्वेरी और प्रोजेक्शन

> db.indexesDemo.find(
    { StudentFirstName: { $in: [ "John", "David" ] } },
    { _id: 0, StudentLastName: 0 }
);

आउटपुट (केवल StudentFirstName, John और David के लिए):


$in ऑपरेटर के लाभ

  • पठनीयता: एकाधिक $or क्लॉज़ से अधिक साफ
  • परफॉर्मेंस: इंडेक्स का कुशलता से उपयोग कर सकता है
  • लचीलापन: किसी भी आकार का ऐरे स्वीकार करता है

तुलना: $in vs $or

// $in का उपयोग (अनुशंसित)
{ StudentFirstName: { $in: ["John", "David"] } }

// समतुल्य $or
{ $or: [
    { StudentFirstName: "John" },
    { StudentFirstName: "David" }
] }

प्रोजेक्शन नोट

दूसरे पैरामीटर { _id: 0, StudentLastName: 0 } में:

  • _id: 0 - _id फ़ील्ड को बहिष्कृत करता है
  • StudentLastName: 0 - StudentLastName को बहिष्कृत करता है
  • परिणाम: केवल StudentFirstName शामिल होता है

  1. - MongoDB में किसी फ़ील्ड के सभी मानों को विशिष्ट स्ट्रिंग से अपडेट करना

    कलेक्शन के सभी दस्तावेज़ों में किसी फ़ील्ड का मान बदलने के लिए update() के साथ multi: true (या नए वर्जन में updateMany()) का उपयोग करें। डेमो डेटा > db.demo720.insertOne({SubjectName:MySQL}); > db.demo720.insertOne({SubjectName:Java}); > db.demo720.insertOne({SubjectName:C}); > db.demo7

  1. - MongoDB डॉक्यूमेंट से विशिष्ट मान फ़िल्टर करें

    विशिष्ट मान फ़िल्टर करने के लिए MongoDB में $filter का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo751.insertOne( { _id: 101, details: [ { Name: Robert, id:110,Age:21}, { Name: Rae, id:110,Age:22}, {Name: Ralph, id:116,Age:23} ] } ); { acknowledged : true, insertedId : 101 } find() से सभी डॉक

  1. - MongoDB में सरणी क्वेरी करके विशिष्ट मान प्राप्त करें

    सरणी से विशिष्ट मान प्राप्त करने के लिए aggregate() के साथ $project का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo761.insertOne( { details: [ { student: { FullName: Chris Brown } } ] } ); { acknowledged : true, insertedId : ObjectId(5eb034d15637cd592b2a4af1) } > db.demo761.insertOne( { de