中にアレイにエントリを追加することが可能である:
{
_id : ObjectId(.....),
prop1 : "foo",
links : [ 1, 2, 3, 4 ]
}
{
_id : ObjectId(.....),
prop1 : "bar",
links : [ 5, 6, 7, 8 ]
}
私はこれらの文書を処理するために集約フレームワークを使用しています、私が使う$生成にくつろぎますリンク配列内の各値のドキュメント。
$ unwindを呼び出す前にドキュメントを更新する必要がある3つのケースがありますが、私は$ project操作を見ていましたが、以下のケースでは配列の作成方法や更新方法に関する情報はありません。
1)リンクプロパティがリンクの配列プロパティは、私が挿入する必要が空の配列
{
_id : ObjectId(.....),
prop1 : "far",
links : []
}
ある)私はリンクアレイ
2を挿入する必要が
{
_id : ObjectId(.....),
prop1 : "far"
}
が欠落しています配列の値
3)リンク配列の値が少なすぎる
{
_id : ObjectId(.....),
prop1 : "far",
links : [ 9, 10 ]
}
は、私はあなたが使用することができるはず
条件付きで値を追加するには '$ cond'を参照してください:http://docs.mongodb.org/manual/reference/operator/aggregation/cond/ – WiredPrairie
私は$ condに慣れています、問題私は実際に配列を作成する方法や配列の値を更新する方法を理解できないということがあります。私はこれをより良く反映するように質問を更新しました。 – user2808819
文書を実際に永続的に変更することはできません。フィールドの値を変更できるのはパイプライン中のみです。 – WiredPrairie