0
リストの同じ要素に色の青色とサイズ50のすべてのuserIDをフィルタリングするにはどうすればよいですか?ユーザ1347だけが出力されるべきである。これは$ elemMatchで行うことができれば
{
"userId": "12347",
"settings": [
{ name: "SettingA", color: "blue", size: 10 },
{ name: "SettingB", color: "blue", size: 20 },
{ name: "SettingC", color: "green", size: 50 }
],
}
{
"userId": "1347",
"settings": [
{ name: "SettingA", color: "blue", size: 10 },
{ name: "SettingB", color: "blue", size: 50 },
{ name: "SettingC", color: "green", size: 20 }
]
}
は、どのように私は同じリストにある必要があり、次の2つの要素を仮定して、次のクエリに含めることができます:{「rounds.round_values.decisionを」:「フォールド"}、 {" rounds.round_values.gameStage ":" PreFlop "}
このクエリを試しましたが、結果はありません。私はelemMatch deosntが予測で働くので、それを読んだ。しかし、$ elemmMatchの条件を満たすオブジェクトだけを返すように$ filterに指示するにはどうすればよいですか?
db.games.aggregate([
{ $match: { $and: [
{ Template: "PPStrategy4016" },
{ FinalOutcome: "Lost" }]
}},
{ $elemMatch: {
{ "rounds.round_values.decision" : "Fold"},
{ "rounds.round_values.gameStage" : "PreFlop"}
} },
{
$group: {
_id: null,
total: {
$sum: "$FinalFundsChange"
}
}
} ])
マッチはどのように色が青で、サイズ50は 'the same'要素の一部である必要があることを知っていますか? $ elemMatchだけではないのですか? – Nickpick
'$ unwind'は、配列を展開し、その後にlikeとand query(colorとsize)の' $ match'を続けます。 '$ elemMatch'は集約には適用されません –