2017-09-28 7 views
0

以下のスキーマを考えれば、1年以上の期間を持つすべてのスキームを見つけるためのMongoDBスキームを作成したいと思います。すなわち(開始 - 終了)> 1年。 私はあなたが減算で集約を使用することができ、私はMongoDBのクエリで(start - end) > 1 year.年以上のスキームを検索するためのMongoDBクエリ?

{ 
    "update" : ISODate("2017-09-26T15:22:13.172Z"), 
    "create" : ISODate("2017-09-26T15:22:13.172Z"), 
    "scheme" : { 
     "since" : ISODate("2017-09-26T15:22:13.172Z"), 
     "startDate": ISODate("2017-09-26T15:22:13.172Z"), 
     "endDate": ISODate("2018-09-26T15:22:13.172Z"), 
    }, 
} 
+2

[2フィールド比較時のMongoDbクエリ条件](https://stackoverflow.com/questions/4442453/mongodb-query-condition-on-comparing-2-fields)の可能な複製 – Veeram

答えて

0

を、このような式を指定することができるかどうかわからない:

db.yourcollection.aggregate(
[{ 
    $project : { dateDifference: { $subtract: [ "$scheme.endDate", "$scheme.endDate" ] }}, 
    $match : { "$dateDifference" : { $gt : 31536000000 } } 
}]); 

(年間*315.36億=ミリ秒)を

ます他の$プロジェクトを使用して、一致するドキュメントに必要なフィールドを出力することができます。