繁体   English   中英

获取上个月的所有记录以及内部记录-MongoDB C#SDK

[英]Get all records with inner record from last month - MongoDB C# SDK

我正在尝试使用C#SDK从我的MongoDB数据库中获取上个月进行过任何活动的所有用户。

我的用户记录包含具有创建日期的统计记录列表(作为ObjctId)。

public class UserRecord
{
    private string firstName;

    public ObjectId Id
    {
        get;
        set;
    }

    public List<ObjectId> Statistics
    {
        get;
        set;
    }
}

我的查询生成器函数如下所示:

static IMongoQuery GenerateGetLiveUsersQuery(DateTime lastStatistic)
{
        List<IMongoQuery> queries = new List<IMongoQuery>();

        queries.Add((Query<UserRecord>.GTE(U =>
             U.Statistics.OrderByDescending(x => x.CreationTime).First().CreationTime
               , lastStatistic)));

          ///.... More "queries.Add"...

        return Query.And(queries);           
}

不知道我在做什么错,但是在尝试构建查询(GTE查询)时收到System.NotSupportedException错误消息。

无法确定表达式的序列化信息:(UserRecord U)=> Enumerable.First(Enumerable.OrderByDescending(U.Statistics,(ObjectId x)=> x.CreationTime))。CreationTime。

以下查询应该工作

var oId = new ObjectId(lastStatistic, 1, 1, 1);
var query = Query<UserRecord>.GTE(e => e.Statistics, oId);

您可以基于您的截止日期lastStatistic日期创建一个ObjectId 然后,您可以查询UserRecord集合以查找在Statistics列表中具有大于ObjectId的项目的任何记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM