MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

$elemविशिष्ट के साथ मिलान करें

अनुमान लगाना test.device_serial एक सरणी है, यह आपकी गलती है:

 db.sessions.distinct("tests.device_serial", {"tests.device_serial" : {$ne: ""}})

आपके विशिष्ट आदेश में क्वेरी उन दस्तावेज़ों को फ़िल्टर कर रही है जहाँ सरणी 'परीक्षण' शामिल है डिवाइस_सीरियल नाम की एक फ़ील्ड जिसका मान "" है, न कि केवल सरणी में फ़ील्ड।

आप जो चाहते हैं उसे प्राप्त करने के लिए, आप अलग-अलग मान प्राप्त करने के लिए $addToSet कमांड के साथ एकत्रीकरण ढांचे का उपयोग कर सकते हैं, एकाधिक दस्तावेज़ों में सरणी खोल सकते हैं, फ़िल्टर और समूह को शून्य कर सकते हैं।

ये रही क्वेरी:

db.sessions.aggregate(
    [
        {
            $unwind: {
                path : "$tests"
            }
        },
        {
            $match: {
            "tests.device_serial":{$ne:""}
            }
        },
        {
            $group: {
              "_id":null,
                "device_serials":{$addToSet:"$tests.device_serial"}
            }
        },
    ]
);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB C# ड्राइवर 2.0:MapReduceAsync से परिणाम कैसे प्राप्त करें

  2. डेटा खोए बिना मैं एक मोंगोडब कैप्ड संग्रह का आकार कैसे बदल सकता हूं?

  3. गंभीर त्रुटि:कक्षा 'मोंगोडीबी \ ड्राइवर \ प्रबंधक' नहीं मिला

  4. MongoLab/PyMongo कनेक्शन त्रुटि

  5. मोंगो डीबी में सेव और इंसर्ट में क्या अंतर है?