Как запросить дату и время MongoDB в C #? - PullRequest
4 голосов
/ 02 января 2012

Я использую MongoDB и C # 4.0. В MongoDB я сохраняю CreatedOn как DateTime, например «2011-01-01T01: 40: 45.041Z». В C # я использую драйверы MongoDB, так как я могу запросить базу данных для определенного дня? Пока я сделал, как показано ниже ...

var fileLogCollection = db.GetCollection<FileLog>();
Document selector = new Document();
selector["CreatedOn"] =dateTimePicker1.Value.Date; 
var all = fileLogCollection.Find(selector);

Спасибо

Ответы [ 2 ]

8 голосов
/ 02 января 2012

Ваш пример кода не похож на официальный драйвер C #.

Используя официальный драйвер C #, вы напишите что-то вроде:

var collection = database.GetCollection<FileLog>("logs");
var query = Query.EQ("CreatedOn", dateTimePicker1.Value.Date.ToUniversalTime());
foreach (var document in collection.FindAll(query)) {
    // process document
}

Вам также необходимо убедиться, что вы сохраняете значения CreatedOn как реальные значения DateTime BSON, а не как строки.

Вам также необходимо помнить, что значения DateTime хранятся в UTC с разрешением в миллисекундах.

4 голосов
/ 24 октября 2012

Я использую следующий метод для запроса базы данных. Вы можете попробовать.

var date = DateTime.Parse("2012-12-12");    
var docs = _docs.asQueryable().Where(o=>o.CreatedOn >= date && o.CreatedOn < date.AddDays(1));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...