2016-11-14 11 views
1

は、私はこのような文書を持っているとしましょう。特定の日付の比較

どのようにmongoDBまたはmongooseJSでそれを達成するには?

答えて

1

を使用することができます。

db.collection.aggregate([ 
    { 
     "$project": { 
      "productName": 1, 
      "expiredDate": 1, 
      "expiredMonth": { "$month": "$expiredDate" } 
     } 
    }, 
    { "$match": { "expiredMonth": 11 } } 
]) 

別:$month式で追加フィールドに基づいてドキュメントをフィルタリングする$projectパイプラインと$match以降のパイプライン内date operatorsを操作する時に見える最初のユースケースを考えてみましょうオプションは、$redact演算子を持つ単一のパイプラインを使用しています。この演算子には、の機能が組み込まれています、上記のように$matchとは$$KEEPシステム変数を使用して指定された条件に一致するすべてのドキュメントを返し、$$PRUNEシステム変数を使用して一致しないものを廃棄します。このオペレータはコレクションスキャンを実行するので、最初のパイプラインオプションが最適になるように注意してください。

db.collection.aggregate([ 
    { 
     "$redact": { 
      "$cond": [ 
       { 
        "$eq": [ 
         { "$month": "$expiredDate" }, 
         11 
        ] 
       }, 
       "$$KEEP", 
       "$$PRUNE" 
      ] 
     } 
    } 
]) 
+1

が機能しているようです。私は最初に集約フレームワークを学び、それを私のユースケースに適用します。実際に私のユースケースはこの例と少し違うからです。 あなたの説明をありがとう。 – Kim

0

あなたはあなたが使用できるいくつかの演算子を持つ集約フレームワークを使用することができ集約フレームワーク

​​