问题描述
我们正计划从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 (将#修改为@)