我必须对mongo db中的嵌套数组进行搜索和排序。
以下是我的查询的详细信息:
这是我的模特。
public class Parent
{
[BsonId]
public ObjectId ParentId { get; set; }
[BsonElement("parentName")]
public string ParentName { get; set; }
public Datetime RegistrationDate { get; set; }
public IEnumerable<TestItems> ActionLog { get; set; }
}
需要对其执行排序和搜索的子/嵌套数组
public class TestItems
{
[BsonElement("entryTime")]
public DateTime EntryTime { get; set; }
[BsonElement("entryName")]
public DateTime EntryName { get; set; }
}
所以我需要最近更新的位置;在这里,我们只需要对输入时间进行排序,然后对最近的输入时间记录应用过滤器即可。
在这里,我如何编写查询但没有成功。
var builder = Builders<Parent>.Filter;
FilterDefinition<Parent> filter = null;
if (filterType == InsuranceCaseFilterType.RegistrationDate)
{
filter = builder.Where(ic => statusFilter.Contains(ic.ParentName) &&
ic.RegistrationDate >= from && ic.RegistrationDate <= to);
}
else if (filterType == InsuranceCaseFilterType.LastModifiedDate)
{
filter = builder.Where(ic => statusFilter.Contains(ic.ParentName) &&
ic.ActionLog.OrderByDescending(c => c.EntryTime).First().EntryTime >= from
&& ic.ActionLog.OrderByDescending(c => c.EntryTime).First().EntryTime
<=To);
}
但是当我执行查询时,我得到了错误
{document} {ActionLog} .OrderByDescending(z => z.EntryTime).FirstOrDefault()。不支持EntryTime。
请让我知道我该如何实现??
谢谢。