2013-10-07 2 views
3

C# 드라이버를 사용하여 MongoDb에서 작업 중입니다. mongoDb 데이터베이스를 쿼리하여 EventDate가 오늘 날짜부터 13 개월 이상인 행을 찾습니다.MongoDb C#을 사용하여 날짜 시간에 대해

내 MongoDB를 아래에 유사한 구조 뭔가가 있습니다

EVENTDATE이 데이터 형입니다 : 날짜 시간

{ 
    "_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 확장 메서드 구문을 사용하여 하나가 될 것입니다 :이보다 한는 EventDate 적은을 가지고있는 "yourClass" 컬렉션의 모든 문서에 커서를 반환합니다

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

13 개월 전이며 YourClass의 인스턴스로 역 직렬화됩니다.

+0

감사합니다. 위의 쿼리에서 얻은 레코드를 삭제하려고합니다. 귀하의 답변을 업데이트 해주십시오. –

+0

레코드를 제거하려면'Find'를'Remove'로 변경하십시오. – mnemosyn

+0

'p'가 무엇인지 나에게 설명해 주시겠습니까 ?? 나는 여전히 mongo와 linq에 대해 익숙하지 않다. – M009

0

DateTime.UtcNow.AddMonths(-13)이 좋은 예이며 완벽하게 작동합니다.