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

MongoDB में दो प्रॉपर्टी के योग के आधार पर डॉक्यूमेंट खोजें

MongoDB एग्रीगेशन: दो फ़ील्ड का जोड़ निकालकर उससे क्वेरी करना

$add ऑपरेटर से दो फ़ील्ड का योग निकालें, फिर $match से उस योग के आधार पर फ़िल्टर करें।

कलेक्शन बनाएं और डॉक्यूमेंट इन्सर्ट करें

> db.searchDocumentsDemo.insertOne({"Value1": 100, "Value2": 560});
{ "acknowledged": true, "insertedId": ObjectId("5cd3fe1eedc6604c74817ce9") }
> db.searchDocumentsDemo.insertOne({"Value1": 300, "Value2": 150});
{ "acknowledged": true, "insertedId": ObjectId("5cd3fe29edc6604c74817cea") }
> db.searchDocumentsDemo.insertOne({"Value1": 400, "Value2": 200});
{ "acknowledged": true, "insertedId": ObjectId("5cd3fe30edc6604c74817ceb") }
> db.searchDocumentsDemo.insertOne({"Value1": 190, "Value2": 210});
{ "acknowledged": true, "insertedId": ObjectId("5cd3fe45edc6604c74817cec") }

सभी डॉक्यूमेंट देखें

> db.searchDocumentsDemo.find().pretty();
{ "_id": ObjectId("5cd3fe1eedc6604c74817ce9"), "Value1": 100, "Value2": 560 }
{ "_id": ObjectId("5cd3fe29edc6604c74817cea"), "Value1": 300, "Value2": 150 }
{ "_id": ObjectId("5cd3fe30edc6604c74817ceb"), "Value1": 400, "Value2": 200 }
{ "_id": ObjectId("5cd3fe45edc6604c74817cec"), "Value1": 190, "Value2": 210 }

एग्रीगेशन: कुल वैल्यू (Value1 + Value2) < 500 वाले डॉक्यूमेंट

> db.searchDocumentsDemo.aggregate([
  {$project: {totalValue: {$add: ["$Value1", "$Value2"]}}},
  {$match: {totalValue: {$lt: 500}}}
]);
{ "_id": ObjectId("5cd3fe29edc6604c74817cea"), "totalValue": 450 }
{ "_id": ObjectId("5cd3fe45edc6604c74817cec"), "totalValue": 400 }

गणना विवरण

Value1Value2योग< 500?
100560660नहीं
300150450हां ✓
400200600नहीं
190210400हां ✓

पाइपलाइन समझें

  1. $project - नया फ़ील्ड totalValue बनाता है: $add: ["$Value1", "$Value2"]
  2. $match - totalValue पर फ़िल्टर: {$lt: 500}

विस्तार: मूल फ़ील्ड भी रखें

db.searchDocumentsDemo.aggregate([
  {$project: {Value1: 1, Value2: 1, totalValue: {$add: ["$Value1", "$Value2"]}}},
  {$match: {totalValue: {$lt: 500}}}
])
  1. - MongoDB में ऐरे के अंदर विशिष्ट फ़ील्ड वैल्यू के आधार पर डॉक्यूमेंट काउंट करना

    एम्बेडेड ऐरे में किसी विशिष्ट फ़ील्ड वैल्यू की घटनाओं को गिनने के लिए $unwind, $match और $group का उपयोग करें। डेमो डेटा > db.demo726.insertOne({ id:101, details: [ { Name:Chris }, { Name:Chris }, { Name:Bob } ] }); क्वेरी db.demo726.aggregate([ { $unwind

  1. - MongoDB में फॉर लूप के साथ मान कैसे पुश करें?

    मान पुश करने के लिए फॉर लूप के साथ save() का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > for(var v=1; v<7; v++) { ... db.demo739.save({Name:Chris,SubjectName:MongoDB}); ... } WriteResult({ nInserted : 1 }) find() से सभी डॉक्यूमेंट्स देखें: > db.demo739.find(); आउटपुट (6 डॉक्यूमेंट्स डाले गए): { _

  1. - MySQL में सटीक स्ट्रिंग मान कैसे खोजें

    COLLATE utf8_bin का उपयोग करके केस-सेंसिटिव खोज सटीक स्ट्रिंग मान खोजने के लिए COLLATE का उपयोग करें। पहले टेबल बनाएं: create table DemoTable1620 ( Subject varchar(20) ); Query OK, 0 rows affected (0.42 sec) रिकॉर्ड डालें: insert into DemoTable1620 values(MYSQL); Query OK, 1 row affected (0.20 sec