MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB:Как да върна произволни елементи без Linq? (MongoDB, C#)

Можете да използвате рамката за агрегиране, за да постигнете това, това няма да промени начина, по който сте изградили филтъра си, тъй като можете просто да го използвате в рамките на $match етап.

Понастоящем няма безопасен за типа начин за създаване на примерен етап (това е в Jira backlog 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

Можете да намерите повече информация за $sample stage в документацията на MongoDB, https://docs.mongodb.com/manual/reference/operator/aggregation/sample/



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Атомно преместване на обект по ID от един масив в друг в същия документ

  2. Импортиране на csv в mongodb с помощта на PHP код

  3. Как да върна ISO формат на дата в PHP за MongoDB?

  4. Заявки в MongoDB

  5. Mongo php разширение след актуализация на Heroku (композитор)