2012-01-01 19 views
4

私はMongoDBとC#4.0を使用しています。 MongoDBではCreatedOnをDateTimeとして保存します(例: "2011-01-01T01:40:45.041Z")。 C#ではMongoDBドライバを使用していますので、特定の日にどのようにデータベースに問い合わせることができますか?これまでのところ私はそれが公式のC#のドライバを使用しているようにあなたのサンプルコードは見ていません...以下のようにC#でMongoDBの日付時刻を照会する方法は?

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

おかげ

+0

だから、うまくいきませんか? –

+0

[C#driver tutorial](http://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial#CSharpDriverTutorial-FindandFindAsmethods)を読んでいますか? –

+0

それはうまく動作しません。私はあまりそれを読んでいませんでした。どのように私はセレクタの中でより大きいを置くことができます私はこれに新しいですばかげた質問申し訳ありません。 – user1125435

答えて

8

を行っています。あなたのような何かを書くと公式の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 
} 

また、あなたが本当のBSONのdatetime値としてではなく文字列としてごCreatedOn値を格納していることを確認する必要があります。

また、DateTime値はミリ秒の分解能でUTCで保存されることに注意する必要があります。

4

次の方法を使用してデータベースを照会しています。あなたは試してみることができます。

var date = DateTime.Parse("2012-12-12");  
var docs = _docs.asQueryable().Where(o=>o.CreatedOn >= date && o.CreatedOn < date.AddDays(1)); 
関連する問題