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

MongoDB में कैसे जांचें कि डॉक्यूमेंट में फील्ड के लिए वैल्यू मौजूद है?

MongoDB में $exists और ऐरे इंडेक्स से वैल्यू एक्जिस्टेंस चेक करना

MongoDB में किसी ऐरे फील्ड में कम से कम एक एलिमेंट है या नहीं, यह जांचने के लिए ऐरे इंडेक्स (0) के साथ $exists ऑपरेटर का उपयोग करें।

उदाहरण: कलेक्शन और डॉक्यूमेंट्स बनाना

> db.checkIfValueDemo.insertOne({"PlayerName":"John Smith","PlayerScores":[5000,98595858,554343]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cc6f507af8e7a4ca6b2ad98") }
> db.checkIfValueDemo.insertOne({"PlayerName":"John Doe","PlayerScores":[]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cc6f512af8e7a4ca6b2ad99") }
> db.checkIfValueDemo.insertOne({"PlayerName":"Carol Taylor","PlayerScores":[7848474,8746345353]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cc6f521af8e7a4ca6b2ad9a") }
> db.checkIfValueDemo.insertOne({"PlayerName":"David Miller","PlayerScores":[]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cc6f531af8e7a4ca6b2ad9b") }

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

> db.checkIfValueDemo.find().pretty();

आउटपुट:

{ "_id" : ObjectId("5cc6f507af8e7a4ca6b2ad98"), "PlayerName" : "John Smith", "PlayerScores" : [ 5000, 98595858, 554343 ] }
{ "_id" : ObjectId("5cc6f512af8e7a4ca6b2ad99"), "PlayerName" : "John Doe", "PlayerScores" : [ ] }
{ "_id" : ObjectId("5cc6f521af8e7a4ca6b2ad9a"), "PlayerName" : "Carol Taylor", "PlayerScores" : [ 7848474, 8746345353 ] }
{ "_id" : ObjectId("5cc6f531af8e7a4ca6b2ad9b"), "PlayerName" : "David Miller", "PlayerScores" : [ ] }

कम से कम एक स्कोर वाले डॉक्यूमेंट्स गिनना

> db.checkIfValueDemo.find({'PlayerScores.0' : {$exists: true}}).count();

आउटपुट:

2

व्याख्या:

  • PlayerScores.0 - ऐरे के पहले एलिमेंट (इंडेक्स 0) को संदर्भित करता है
  • {$exists: true} - जांचता है कि यह एलिमेंट मौजूद है
  • खाली ऐरे [] में इंडेक्स 0 नहीं होता, इसलिए मैच नहीं करते

अल्टरनेटिव मेथड्स:

  • { PlayerScores: { $ne: [] } } - खाली ऐरे नहीं
  • { PlayerScores: { $exists: true, $not: { $size: 0 } } } - मौजूद है और साइज 0 नहीं
  • { $expr: { $gt: [{ $size: "$PlayerScores" }, 0] } } - एग्रीगेशन एक्सप्रेशन (MongoDB 3.6+)
  1. MongoDB क्वेरी: आईडी को सरणी फ़ील्ड मान से बाहर कैसे करें MongoDB क्वेरी: आईडी को सरणी फ़ील्ड मान से बाहर कैसे करें

    इसके लिए $not के साथ $in ऑपरेटर का उपयोग करें। आइए एक संग्रह बनाते हैं: [ { id: 101, subjectid: [ 102 ] }, { id: 102, subjectid: [ 102 ] } ] सभी दस्तावेज़ देखने के लिए: db.collection.find() आउटपुट: [ { _id: ObjectId(5a934e000102030405000000),

  1. - MongoDB में रेंज कैसे खोजें?

    रेंज खोजने के लिए, sort() के साथ limit() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo665.insertOne({Value:10}); { acknowledged : true, insertedId : ObjectId(5ea1bf1424113ea5458c7d08) } > db.demo665.insertOne({Value:15}); { acknowledged : true, insertedId : ObjectId(5ea1bf1b

  1. - MongoDB में सरणी में डुप्लिकेट की जांच कैसे करें?

    सरणी में डुप्लिकेट जांचने के लिए MongoDB में aggregate() का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo756.insertOne({SubjectName:[MySQL,MongoDB,Java]}); { acknowledged : true, insertedId : ObjectId(5eb01e0d5637cd592b2a4add) } > db.demo756.insertOne({SubjectName:[MongoDB,MySQL,MongoDB,C,C