返された文書にサブ文書が含まれていないクエリまたは集計を作成したいとします。私は与えられたフィールドが事前にサブドキュメントになることを知らない(または私はちょうどそれらをスキップするために投影を使用する)。だから私はこのような文書があれば、たとえば、:サブ文書をスキップするMongoDBクエリまたは集計
{
_id: 1,
field1: "a",
field2: "b",
field3: {
subfield1: "c",
subfield2: "d"
}
}
を私のクエリはこの文書を返すとき、それはFIELD3をスキップのいずれか、または何か他のもの(例えば、文字列=「field_is_an_object」)とフィールド3の値を置き換えます。
私が言ったように、どのフィールドがサブドキュメント(または「オブジェクト」タイプ)になるかは事前に分かりません。 $ redact演算子は私が見つけることができる最も近いものでしたが、動作させるための構文を理解できませんでした。
これは機能しました...ありがとうございます。詳細な説明も非常に役立ちます。私の唯一のコメントは、$ objectToArray操作は3.6で新しく、3.6はまだ公式にリリースされていないということです。私は最新のRC 3.6をインストールしました。 –
3.4から入手できます:https://docs.mongodb.com/manual/reference/operator/aggregation/objectToArray/ – dnickless
これは恥ずかしいことです。私は3.4.0だったので、私にとってはうまくいかなかった。私は「3.6で追加されました」と言ったことを誓ったことがあるので、それは私がインストールしたものです。ドキュメントには、3.4.4で追加されたことが明確に書かれていますが。再度、感謝します。 –