私が取り組んでいるドキュメントの例を次に示します。
{
"_id" : ObjectId("5b35019563726438989381d3"),
"ref" : "123",
"nom" : "pc",
"Revendeurs" : [
{
"revendeur" : "Tdiscount",
"selecteur_prix" : ".price",
"hist_prix" : [
{
"date" : ISODate("2018-06-28T00:00:00Z"),
"prix" : 200
},
{
"date" : ISODate("2018-06-27T00:00:00Z"),
"prix" : 100.8}
]
}
]
}
「賞」フィールドの最大値を照会したい。「revendeur」ごとにすべての「prix」をリストする必要もありますが、Mongodb は空の結果しか返しません。
このクエリを実行する場合:
db.Tunicompare.aggregate([
{ $unwind: '$Revendeurs' },
{ $group: { _id: null, max: { $max: '$Revendeurs.hist_prix.prix' } } },
{ $project: { max: 1, _id:0 } }
])
この結果が得られます (最大で 200 しか得られないのではなく)
{ "max" : [ 200, 100.8 ] }