Запрос сортировки MongoDB в драйвере C # .NET - PullRequest
0 голосов
/ 19 марта 2019

Я пытался Sort собрать коллекцию, используя MongoDB SortDefinition , но всякий раз, когда я "сортирую" коллекцию с помощью одного определения сортировки, все, что я получаю, это пустой список. Однако, когда я использую более одного определения сортировки, он возвращает значения.

var TestSort1 = Builders<Scenario>.Sort.Ascending("Name");

        var filtered1 = await _context
            .DbCollection
            .Find(_ => true)
            .Sort(TestSort1)
            .ToListAsync();

Приведенный выше код возвращает пустой список. Тем не менее, код ниже работает нормально.

var TestSort2 = Builders<Scenario>.Sort.Ascending("Name").Ascending("Owner");

        var filtered2 = await _context
            .DbCollection
            .Find(_ => true)
            .Sort(TestSort2)
            .ToListAsync();

Можно ли использовать один SortDefinition для сортировки коллекции? Или, может быть, я использую SortDefinition неправильно?

1 Ответ

0 голосов
/ 03 апреля 2019

Может быть, вам следует попробовать использовать свободный синтаксис C # для создания конвейеров агрегации ...

    var collection = database.GetCollection<FiltroCond>("dbCENTRAL");

    var filter = Builders<FiltroCond>.Filter.Eq(x => x.PartnerId, cliente) 
        & Builders<FiltroCond>.Filter.Eq(x => x.TP_PESSOA, 3) 
        & Builders<FiltroCond>.Filter.Gte(x => x.FG_ATIVO, true);

    var result = collection.Aggregate().Match(filter)
        .Project(p => new FiltroCond { CD_CLIENTE = p.CD_CLIENTE, ID_CENTRAL = p.ID_CENTRAL, FANTASIA = p.FANTASIA })
        .SortBy(p => p.ID_CENTRAL).ToList();

Это прекрасно работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...