2017-04-20 8 views
2

date parameterが表示されています。mongodbで特定の日付形式のクエリをフィルタリングする方法は?

私はmongodbにプロパティCallDate ISODate()を持つコレクションを持っています。私は日付パラメータをフィルタリングするクエリを書き留める必要があります。

SQL Serverので、私達はちょうど私はあなたが3.4バージョンに集約下に試すことができますMongoDBの

db.getCollection("_xyz").find({CallDate : ?}) //How to adjust that filter here 

答えて

1

に同じフィルタを実現することができる方法クエリ

select * from xyz x with (nolock) 
where CONVERT(VARCHAR(23), Cast(x.CallDate as datetime), 112) = @pDateParameter 

を使用しています。

$addFieldsを使用して、dateパラメータに文字列形式の日付プロパティとそれに続く$matchを追加し、後で$projectを除外して文字列の日付列を削除することをお勧めします。

db.collection.aggregate([ 
     { $addFields: {yearMonthDay: { $dateToString: { format: "%Y%m%d", date: "$CallDate" } } } }, 
     { $match: {"yearMonthDay":date parameter}}, 
     { $project:{"yearMonthDay":0}} 
    ]) 
+0

ここで$ projectの使い方を詳しく説明できますか? –

+1

除外フィールドを持つプロジェクトは、集約パイプラインの一部として追加した追加の日付文字列フィールドを削除するために使用されます。ここに詳しい情報があります。 https://docs.mongodb.com/manual/reference/operator/aggregation/project/#exclude-fields – Veeram

関連する問題