C# .NET 驱动程序中的 MongoDB 排序查询



我一直在尝试使用MongoDBSortDefinitionSort集合,但是每当我通过单个排序定义"排序"集合时,我得到的只是一个空列表。但是,当我使用多个排序定义时,它会返回值。

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();

是否可以使用单个排序定义对集合进行排序?或者也许我错误地使用了排序定义

也许你应该尝试使用流畅的 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();

它对我来说效果很好。

最新更新