私のdaily
コレクションには、次のようなドキュメントがあります。
..
{ "date" : ISODate("2013-01-03T00:00:00Z"), "vid" : "ED", "san" : 7046.25, "izm" : 1243.96 }
{ "date" : ISODate("2013-01-03T00:00:00Z"), "vid" : "UA", "san" : 0, "izm" : 0 }
{ "date" : ISODate("2013-01-03T00:00:00Z"), "vid" : "PAL", "san" : 0, "izm" : 169.9 }
{ "date" : ISODate("2013-01-03T00:00:00Z"), "vid" : "PAL", "san" : 0, "izm" : 0 }
{ "date" : ISODate("2013-01-03T00:00:00Z"), "vid" : "CTA_TR", "san" : 0, "izm" : 0 }
{ "date" : ISODate("2013-01-04T00:00:00Z"), "vid" : "CAD", "san" : 0, "izm" : 169.9 }
{ "date" : ISODate("2013-01-04T00:00:00Z"), "vid" : "INT", "san" : 0, "izm" : 169.9 }
...
ここでスペースを確保するために_idフィールドを省略しました。私の仕事は、「過去 15 日以内にすべてのドキュメントを取得する」ことです。ご覧のとおり、次のことが必要です。
- 15 のユニークな日付を取得します。最新のものは、コレクション内の最新のドキュメントとして取得する必要があります (つまり、今日の日付は必要ありません。日付フィールドに基づいたコレクション内の最新のものです)。クエリで最も古い日を厳密に定義するには、私が何を意味するか知っていれば、最新の日から始まるある種のトップ 15 が必要です。15のユニークな日のように。
- db.daily.find()日付フィールドが 15 日の範囲にあるすべてのドキュメント。
その結果、コレクションの最新のものから 15 日以内にすべてのドキュメントが表示されるはずです。