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

MongoDB में फ़ील्ड्स का योग मान से अधिक होने पर क्वेरी कैसे करें?

MongoDB में कई फ़ील्ड्स के योग के आधार पर दस्तावेज़ फ़िल्टर करने के लिए $where ऑपरेटर का उपयोग कर सकते हैं। यह JavaScript एक्सप्रेशन का मूल्यांकन करता है।

उदाहरण

कलेक्शन बनाएं:

> db.sumOfFieldIsGreaterThanDemo.insertOne({"Price1":10,"Price2":50,"Price3":40});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdd84b8bf3115999ed511e6") }
> db.sumOfFieldIsGreaterThanDemo.insertOne({"Price1":11,"Price2":1,"Price3":120});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdd84c6bf3115999ed511e7") }
> db.sumOfFieldIsGreaterThanDemo.insertOne({"Price1":10,"Price2":9,"Price3":6});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdd84d2bf3115999ed511e8") }

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

> db.sumOfFieldIsGreaterThanDemo.find();

आउटपुट:

{ "_id" : ObjectId("5cdd84b8bf3115999ed511e6"), "Price1" : 10, "Price2" : 50, "Price3" : 40 }
{ "_id" : ObjectId("5cdd84c6bf3115999ed511e7"), "Price1" : 11, "Price2" : 1, "Price3" : 120 }
{ "_id" : ObjectId("5cdd84d2bf3115999ed511e8"), "Price1" : 10, "Price2" : 9, "Price3" : 6 }

योग 100 से अधिक वाले दस्तावेज़ ढूंढें

> db.sumOfFieldIsGreaterThanDemo.find(
  {$where: function() {
    return this.Price1 + this.Price2 + this.Price3 > 100
  }}
);

आउटपुट:

{ "_id" : ObjectId("5cdd84c6bf3115999ed511e7"), "Price1" : 11, "Price2" : 1, "Price3" : 120 }

चेतावनी: $where ऑपरेटर JavaScript इंजन का उपयोग करता है, जो धीमा हो सकता है। बड़े डेटासेट के लिए एग्रीगेशन पाइपलाइन में $add और $match का उपयोग करना बेहतर है:

db.collection.aggregate([
  {$project: {total: {$add: ["$Price1", "$Price2", "$Price3"]}, doc: "$$ROOT"}},
  {$match: {total: {$gt: 100}}},
  {$replaceRoot: {newRoot: "$doc"}}
])
  1. - MongoDB में 50 से बड़े मानों का ऐरे प्राप्त करना

    MongoDB में $gt और $in ऑपरेटर्स का उपयोग करके मानों को फ़िल्टर करना MongoDB में विशिष्ट शर्तों को पूरा करने वाले दस्तावेज़ों के _id मानों का ऐरे प्राप्त करने के लिए distinct() के साथ $gt और $in ऑपरेटर्स का संयोजन उपयोग करें। उदाहरण: संग्रह और दस्तावेज़ बनाना > db.demo50.save({Value:40}); WriteRe

  1. - MongoDB में दो संग्रहों को कैसे एग्रीगेट करें जहां एक संग्रह का फ़ील्ड दूसरे से बड़ा हो?

    इसके लिए $lookup का उपयोग कर सकते हैं। आइए दस्तावेज़ों के साथ पहला संग्रह बनाएं: > db.demo446.insert([ ...    { "ProductName": "Product1", "ProductPrice": 60 }, ...    { "ProductName": "Product2", "ProductPrice": 90

  1. - MySQL में GROUP BY HAVING से डुप्लिकेट मान ढूंढें

    MySQL में 1 का उपयोग करके उन मानों को ढूंढ सकते हैं जो टेबल में एक से अधिक बार आते हैं। सिंटैक्स 1; उदाहरण 1. टेबल बनाएं ); 2. डेटा डालें (कुछ डुप्लिकेट के साथ) INSERT INTO DemoTable VALUES(50); 3. सभी रिकॉर्ड देखें SELECT * FROM DemoTable; +-------+ | Value | +-------+ | 20 | | 10 |