聚合流利的API项目方法不添加ID



我正在尝试使用fluent fluent API从mongoDB获取一些数据。我对项目方法有问题,它总是显示出具有强型

的ID null
var result=  await _xyz.Aggregate()
                       .Match(e => 
                       e.Id != ObjectId.Empty
                       && e.StartDate.HasValue
                       && e.StartDate >= DateTime.Today
                       && e.ABC.Any(a => abcIds.Contains(a.abcId)))
                      .Project(p => new XyzSummary()
                      {
                           Id=  p.Id,
                           Name = p.Name,
                           ABC = (List<ABC>)p.ABC.Where(a => abcIds.Contains(a.abcId)),
                           EventVenue = p.EventVenue,
                           StartDate = p.StartDate,
                           City = p.City,
                           LngLat = p.LngLat,
                      })
                      .ToListAsync();

这是我的xyzsummary模型

[BsonIgnoreExtraElements]
public class XyzSummary 
{
    [BsonId]
    public ObjectId Id { get; set; }
    public string Name { get; set; }
    public Abcummary EventVenue { get; set; }       
    public DateTime? StartDate { get; set; }
    public string City { get; set; }
    public GeoJson2DCoordinates LngLat { get; set; }
}

查询是返回正确的结果

任何人都可以帮助我。

谢谢

为什么您甚至使用聚合?

此代码会做同样的事情:

var result =  await _xyz.Find(e => e.Id != ObjectId.Empty
                  && e.StartDate.HasValue
                  && e.StartDate >= DateTime.Today)
                    .ToListAsync();

也许我错过了一些事情。让我知道我是否是=)

编辑:我缺少一些东西。

相关内容

  • 没有找到相关文章

最新更新