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

MongoDB:लिंक के बिना यादृच्छिक तत्व कैसे वापस करें? (मोंगोडीबी, सी#)

आप इसे प्राप्त करने के लिए एकत्रीकरण ढांचे का उपयोग कर सकते हैं, यह नहीं बदलेगा कि आपने अपना फ़िल्टर कैसे बनाया है क्योंकि आप इसे केवल $match के भीतर उपयोग कर सकते हैं मंच।

नमूना चरण बनाने के लिए वर्तमान में कोई टाइप-सुरक्षित तरीका नहीं है (यह जीरा बैकलॉग पर है CSHARP- 2659 ), हालांकि, आप केवल सामान्य JSON सिंटैक्स का उपयोग कर सकते हैं।

var client = new MongoClient();

var db = client.GetDatabase("test");
var collection = db.GetCollection<Person>("people");

// Setup some data
var people = Enumerable.Range(1, 100)
    .Select(x => new Person {Name = $"Person {x}", Age = x});

await collection.InsertManyAsync(people);

var filter = Builders<Person>.Filter.Gt(x => x.Age, 18);
var sampleSize = 10;

// Run aggregation query with a sample stage ($sample)
var personSample = await collection.Aggregate()
    .Match(filter)
    .AppendStage<Person>([email protected]"{{ $sample: {{ size: {sampleSize} }} }}")
    .ToListAsync();

// Output sample
foreach (var person in personSample)
{
    Console.WriteLine($"{person.Name}, Age: {person.Age}");
}

// Example output, note only 10 items all with the matching filter.
// Person 84, Age: 84
// Person 97, Age: 97
// Person 35, Age: 35
// Person 40, Age: 40
// Person 69, Age: 69
// Person 28, Age: 28
// Person 79, Age: 79
// Person 31, Age: 31
// Person 20, Age: 20
// Person 64, Age: 64

आप MongoDB दस्तावेज़ीकरण पर $sample चरण के बारे में अधिक जानकारी प्राप्त कर सकते हैं, https://docs.mongodb.com/manual/reference/operator/aggregation/sample/



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. डीबी में शून्य मान डालने के लिए स्प्रिंग डेटा मोंगो

  2. कैसे तय करें कि किस NoSQL तकनीक का उपयोग करना है?

  3. MongoDB:चेतावनी लॉगिंग को अक्षम कैसे करें:ClientCursor::staticYield पुनरावर्ती लॉक के b/c को अनलॉक नहीं कर सकता है?

  4. ReactiveMongo:FindAndModify द्वारा लौटाए गए BSON को JSON में कैसे बदलें

  5. मोंगो सी # ड्राइवर के साथ एम्बेडेड दस्तावेज़ में आईडी संपत्ति का नाम बनाए रखें