2013-10-07 92 views
3

我对工作的MongoDB使用C#驱动程序MongoDB的查询。我想查询mongoDb数据库来找出从今天的日期起EventDate大于13个月的那一行。使用C#日期时间

我MongoDB的具有类似结构如下东西:

EVENTDATE是数据类型:DateTime的

{ 
    "_id" : ObjectId("525239e3e9374f1c3ce4123b"), 
    "RowId" : 41133552, 
    "EventDate" : ISODate("2013-08-19T00:00:28Z"), 
    "Product" : "supporttool", 
    "Language" : "en", 
    "GUID" : "67cd73d4-36bc-4c9f-9a4c-144b38d4e928", 
} 

请谁能帮助我获得了与事件的日期超过13个月的数据MongoCollection。

回答

4

有不止一种方法,但是这将是一个与LINQ扩展方法的语法:

MongoDatabase db = YourMongoDatabaseObject; 
var cursor = db.GetCollection<YourClass>("yourClass").Find(
    Query<YourClass>.LT(p => p.EventDate, DateTime.UtcNow.AddMonths(-13)); 

这将返回游标到"yourClass"集合中有一个的EventDate不到所有文件13个月前,并将它们反序列化为YourClass的实例。

+0

感谢您的查询。我试图删除我在上面的查询中获得的那些记录。请更新你的回答。 –

+0

删除记录,只是改变'Find'到'Remove' – mnemosyn

+0

你能不能给我解释一下什么是“P”是?我还是新来蒙戈和LINQ – M009

0

DateTime.UtcNow.AddMonths(-13)就是一个很好的例子和完美的作品。