我正在mongodb中查询X个月以上的文档。我没有明确的创建日期字段,也没有权限。
我尝试使用Mongo ObjectId的CreationTime属性,但出现异常System.InvalidOperationException: Unable to determine the serialization information for f => f.Id.CreationTime.
我做了一个查询功能:
public async Task<int> GetReportCountXmonths(string name, int months)
{
await GetCollection<Clients>()
.Find(Builders<Clients>.Filter.Eq(d => d.name, name)
& Builders<Clients>.Filter.Gte(f => f.Id.CreationTime, DateTime.Now.AddMonths(-(months))))
.CountDocumentsAsync();
}
问题:如何使用C#在MongoDB集合中查找X个月以上的文档?
MongoDB不跟踪集合的创建日期。但是,自己完成此操作确实很容易。在mongdb集合中添加createddate字段。另一种方法是使用暗含时间戳记的objectId,但这不是一致的方法。