获取上个月的所有内部记录 - MongoDB C# SDK
Get all records with inner record from last month - MongoDB C# SDK
我正在尝试使用 C# SDK 从我的 MongoDB 数据库中获取上个月有任何类型 activity 的所有用户。
我的用户记录包含带有创建日期的统计记录列表(作为 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 错误消息。
Unable to determine the serialization information for the expression:
(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 集合以查找统计列表中的项目大于您的 ObjectId
.
的任何记录
我正在尝试使用 C# SDK 从我的 MongoDB 数据库中获取上个月有任何类型 activity 的所有用户。
我的用户记录包含带有创建日期的统计记录列表(作为 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 错误消息。
Unable to determine the serialization information for the expression: (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 集合以查找统计列表中的项目大于您的 ObjectId
.