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

मोंगोडीबी सी # डेफिनिशन बिल्डर का उपयोग कर दस्तावेज़ के भीतर एक सरणी में सभी मिलान करने वाले तत्वों को पुनर्प्राप्त करें

प्रश्न उपयोग के मामले का पूरी तरह से वर्णन नहीं करता है, इसलिए मैं कुछ संभावित विकल्पों के साथ आपके लिए कुछ मान्यताओं के आधार पर पता लगाने के लिए आया हूं, विशेष रूप से वे LINQ के उपलब्ध होने और एक समय में एक दस्तावेज़ को लक्षित करने पर निर्भर करते हैं ( और यह कि आप शायद अपनी ज़रूरत से ज़्यादा कोड नहीं चाहते हैं):

1) आपके पास जो है उस पर एक भिन्नता। मानक find का उपयोग करें प्रक्षेपण और LINQ व्यंजक के साथ।

var projection = Builders<ShapeDocument>.Projection
    .Expression(x => x.fooArray.Where(y => y.plot == "circle"));

var items1 = collection
    .Find(x => x.user == "Jone Doe")
    .Project(projection)
    .ToList();

2) एकत्रीकरण पाइपलाइन का उपयोग करें (आप ऊपर के समान प्रक्षेपण का उपयोग कर सकते हैं)

var pipeline = collection
    .Aggregate()
    .Match(x => x.user == "Jone Doe")
    .Project(i => new
            {
                x = i.fooArray.Where(x => x.plot == "circle")
            });

var items2 = pipeline.SingleOrDefault();

3) दस्तावेज़ को सभी सरणी तत्वों के साथ वापस खींचें और फिर LINQ का उपयोग करके स्थानीय रूप से फ़िल्टर करें। दूसरी ओर, यह पठनीय कोड की एक छोटी राशि है, हालांकि, यह पूरे दस्तावेज़ को फ़िल्टर करने से पहले वापस लाता है। आपके सटीक उपयोग के आधार पर यह स्वीकार्य हो सकता है।

var items3 = collection.AsQueryable()
    .SingleOrDefault(x => x.user == "Jone Doe")
    .fooArray.Where(x => x.plot == "circle");

अगर LINQ वास्तव में कोई विकल्प नहीं है तो एक उदाहरण है यहां यह दिखाता है कि आप प्रोजेक्शन को LINQ में कैसे परिवर्तित कर सकते हैं। पूरी तरह से परीक्षण नहीं किया गया लेकिन कुछ इस तरह होगा:

var filter = new BsonDocument {
 {"input", "$items"},
 {"as", "item" },
 {"cond", new BsonDocument {
     // Fill in the condition values
     { "", new BsonArray { "", xxx } } }
   }
 };

var project = new BsonDocument {
 { "items", new BsonDocument { { "$filter", filter} } }
};

var pipeline = collection.Aggregate().Project(project);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB उपयोगकर्ता बनाएं जो केवल उसके द्वारा बनाए गए दस्तावेज़ों का प्रबंधन कर सके

  2. MeteorJS - MongoDB संग्रह में छवियों (FS.collection) को उनके प्रासंगिक दस्तावेज़ से जोड़ना

  3. निश्चित रूप से टाइप किए गए का उपयोग करके टाइपस्क्रिप्ट में नेवला के टाइप किए गए मॉडल और स्कीमा लिखने के लिए कक्षाएं और इंटरफेस

  4. MongoDB प्रारंभ करने में असमर्थ। त्रुटि:Addr पहले से उपयोग में है

  5. मोंगोडब एकत्रीकरण:किसी सरणी के केवल मिलान करने वाले तत्वों को कैसे वापस करें