MondoDb ドキュメントの特定のサブドキュメントの値を修正したいので、次の更新でそれを変更したり、ドキュメントを変更できるその他の MongoDb 操作を実行したりできません。
たとえば、以下のようなドキュメントが挿入された場合、「eyesColor」の値を変更できないようにします。
{
"id" : "someId",
"name": "Jane",
"eyesColor" : "blue"
}
可能な更新は次のとおりです:
{
"id" : "someId",
"name": "Amy",
"eyesColor" " : "green"
}
そして、この更新後に必要な結果は次のとおりです:
{
"id" : "someId",
私が作成しているプロジェクトには $set および $unset 演算子を使用する可能性がないため、これを行いたいと思います。サブドキュメント (「eyesColor」) の値を取得するために、更新前に既存のドキュメントを読み取ると、作業中のアプリケーションのパフォーマンスが低下します。
実際、私が必要とする制約は、コレクション (上限のあるコレクション) の固定サイズに似ています。違いは、コレクションではなくサブドキュメントにあり、サイズではなくサブドキュメントに含まれる値にあることです。
このタイプの制約に対する解決策はありますか?