在 MongoDB 中执行查询时出现提示 ”System.NotSupportedException: Only fields are allowed in a $sort“,意思是排序操作中只允许字段。我的查询语句是这样的:
var query = colleciton.AsQueryable().OrderByDescending(a => (a.Telephone == null) ? a.MobilePhone: a.Telephone);
OrderByDescending 里面传入的是一个表达式,那么我们就需要进行改进一下:
var query = colleciton.AsQueryable()
.Select(a => new { Customer = a, SortBy = a.Telephone == null ? a.MobilePhone : a.Telephone })
.OrderByDescending(a => a.SortBy)
.Select(a => a.Customer);