带C#驱动程序的Mongo DB在项目后排序

问题描述

我们正计划从MS sql迁移到Mongo DB,但由于我们当前遇到的问题,我们很犹豫。

这是投影的代码

ProjectionDeFinition<PrimaryCustomerIndividual,SearchResponse> projectionDeFinition = Builders<PrimaryCustomerIndividual>.Projection.Expression(
                            a => new SearchResponse()
                            {
                                AdditionalContacts = "",Adviser = a.Adviser,ClientSince = a.ClientSince,ClientNextActivityId = a.Activities.First().ActivityId,CreateDate = a.CreateDateTime,CustomerId = a.CustomerID,Email = a.Email,LastNote = a.Notes.First().Notes,LeadOrigin = a.LeadOrigin,LeadType = a.LeadType,Mobile = a.Mobile,Name = a.FirstName + " " + a.LastName,NextReview = a.NextReview,PhysicalAddress = a.PhysicalAddress,UserNextActivityId = 0,}
                        );

使用上面的代码,我们将返回与集合对象不同的对象,我们的集合对象为 PrimaryCustomerIndividual ,而我们返回的是 SearchResponse ,因为存在某些字段,需要由其他集合填充。我们有成千上万的数据,我们正计划进行分页,每页将返回100条记录,但是现在我在如何准确地获取一个100和第二个100的问题上遇到了问题。

这是关于我们如何从数据库中检索数据的代码

var filter = Builders<PrimaryCustomerIndividual>.Filter.Where(a => a.IsActive);
var customers = customerCollection.Find(filter).Project(projectionDeFinition).ToEnumerable()

我很想知道是否有一种方法可以在投影定义之后按 SearchResponse 字段而不是 PrimaryCustomerIndiviual 字段对数据进行排序,而不先将其转换为列表?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...