MongoDB 和 .NET:使用 FilterDefinition 过滤子数组中的特定字段
MongoDB and .NET: Filter on specific field in child array using FilterDefinition
我有一个 class,它根据输入创建一个过滤器列表。
通过为每个过滤器调用一个函数来找到过滤器,如下所示:
public void created_after(string date)
{
DateTime convertedDate = Convert.ToDateTime(date);
filters.Add(Builders<User>.Filter.Gte(x => x.Created, convertedDate));
}
现在我需要在用户的子数组的字段上进行分段。
在这种情况下,我只需要知道是否有任何警报的创建值高于给定日期。
我的数据如下所示:
{
"DisplayName" : "PestisanRadu",
"Alerts" : [
{
"UserId" : ObjectId("577a26a12b365917c4d67dd5"),
"Created" : ISODate("2016-10-05T09:17:44.382+0000")
},
{
"UserId" : ObjectId("577a26a82b365917c4d68009"),
"Created" : ISODate("2016-10-05T18:44:45.743+0000")
}
],
"Created" : ISODate("2016-10-05T09:17:43.423+0000")
}
为了使 class 正常工作,我需要保留 FilterDefinition 类型。
使用其他以 FieldDefinition
作为参数的相同方法,在您的情况下是
filters.Add(Builders<User>.Filter.Gt("Alerts.Created", convertedDate));
注意字符串"Alerts.Created"
是FieldDefinition
我有一个 class,它根据输入创建一个过滤器列表。 通过为每个过滤器调用一个函数来找到过滤器,如下所示:
public void created_after(string date)
{
DateTime convertedDate = Convert.ToDateTime(date);
filters.Add(Builders<User>.Filter.Gte(x => x.Created, convertedDate));
}
现在我需要在用户的子数组的字段上进行分段。 在这种情况下,我只需要知道是否有任何警报的创建值高于给定日期。 我的数据如下所示:
{
"DisplayName" : "PestisanRadu",
"Alerts" : [
{
"UserId" : ObjectId("577a26a12b365917c4d67dd5"),
"Created" : ISODate("2016-10-05T09:17:44.382+0000")
},
{
"UserId" : ObjectId("577a26a82b365917c4d68009"),
"Created" : ISODate("2016-10-05T18:44:45.743+0000")
}
],
"Created" : ISODate("2016-10-05T09:17:43.423+0000")
}
为了使 class 正常工作,我需要保留 FilterDefinition 类型。
使用其他以 FieldDefinition
作为参数的相同方法,在您的情况下是
filters.Add(Builders<User>.Filter.Gt("Alerts.Created", convertedDate));
注意字符串"Alerts.Created"
是FieldDefinition