2

MongoDB に次のようなドキュメントがあるとします。

{
    "lastDate" : ISODate("2013-14-01T16:38:16.163Z"),
    "items":[
        {"date":ISODate("2013-10-01T16:38:16.163Z")},
        {"date":ISODate("2013-11-01T16:38:16.163Z")},
        {"date":ISODate("2013-12-01T16:38:16.163Z")},
        {"date":ISODate("2013-13-01T16:38:16.163Z")},
        {"date":ISODate("2013-14-01T16:38:16.163Z")}        
    ]
}

または、次のようにします。

{
    "allAre" : false,
    "items":[
        {"is":true},
        {"is":true},
        {"is":true},
        {"is":false},
        {"is":true}        
    ]
}

最上位フィールドは、配列内のデータが変更されるたびに再計算する必要があります"lastDate"。すべての中で最大のはずです。すべての項目が true である場合にのみ、true に等しい必要があります。 "allAre""lastDate""date""allAre""is"

MongoDB でこのような動作を実現するには、クエリをどのように作成すればよいですか?
get リクエスト中に値を計算するのではなく、挿入時にいくつかの値を事前に計算することをお勧めしますか?

4

1 に答える 1