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

पाइपलाइन के साथ $ लुकअप कैसे करें और सी # में पैरामीटर दें (MongoDB.Driver 2.7.2)

जैसा कि आपने किसी विशेष वर्ग मानचित्रण और उदाहरण दस्तावेज़ों को निर्दिष्ट नहीं किया है, नीचे दिए गए उत्तर में BsonDocument . का उपयोग किया जाएगा मैनुअल से टाइप और उदाहरण डेटा $लुकअप:लुकअप के साथ कई जुड़ने की शर्तें निर्दिष्ट करें

BsonArray subpipeline = new BsonArray();

subpipeline.Add(
    new BsonDocument("$match",new BsonDocument(
        "$expr", new BsonDocument(
        "$and", new BsonArray { 
             new BsonDocument("$eq", new BsonArray{"$stock_item", "$$order_item"} ), 
             new BsonDocument("$gte", new BsonArray{"$instock", "$$order_qty"} )
             }  
        )
    ))
);

var lookup = new BsonDocument("$lookup", 
                 new BsonDocument("from", "warehouses")
                             .Add("let", 
                                 new BsonDocument("order_item", "$item")
                                             .Add("order_qty", "$ordered"))
                             .Add("pipeline", subpipeline)
                             .Add("as", "stockdata")
);

var results = collection.Aggregate()
                        .Match(new BsonDocument("_id", 1))
                        .AppendStage<BsonDocument>(lookup).ToEnumerable();

foreach (var x in results)
{
    Console.WriteLine(x.ToJson());
} 

कृपया ध्यान दें कि अधिक अभिव्यंजक $lookup PipelineDefinitionBuilder का उपयोग करके संस्करण 2.8.x के लिए आ रहा है। अधिक जानकारी के लिए देखें CSHARP-2013




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB के साथ उप-दस्तावेज़ में सरणी को कैसे फ़िल्टर करें?

  2. स्व-होस्ट किए गए पार्स से mLab डेटाबेस से कनेक्ट करने में असमर्थ

  3. नेवला ढूँढें और निकालें

  4. स्कीमा में नेवला जियोजोन, भू कुंजी त्रुटि नहीं निकाल सकता

  5. Mongodb केवल कैसे सम्मिलित करें यदि मौजूद नहीं है (कोई अद्यतन मौजूद नहीं है)?