私はここで少し探し回っていますが、私が抱えている質問や問題に実際に答えているものは何も見つからないので、質問してみます. REST API に、ユーザーに自分のメンバーシップを終了する権利を与える関数があります。問題は、ユーザーがこれを行うと、他のいくつかのネストされたフィールドを更新する必要があることです。これらのフィールドはすべて、所有権オブジェクトである 1 つのオブジェクトにネストされています。プロパティは所有者、賃借人、管理人で、値は削除されるユーザーの ID です。ID がフィールドの 1 つにある場合は削除する必要があり、ID の場所は異なる場合があります。
これは私がこれまでに行ったことです:
await Horse.updateMany(
{ 'ownership.owner': req.body.id },
{ 'ownership.owner': 'someAdminIDHere' },
);
await Horse.updateMany(
{ 'ownership.renter': req.body.id },
{ 'ownership.renter': null },
);
await Horse.updateMany(
{ 'ownership.caretaker': req.body.id },
{ 'ownership.caretaker': null },
);
しかし、それは本当に冗長だと感じており、より良い方法を見つけたいと思っていました. populate やその他のいくつかのオプションを検討してきましたが、それらが解決策であるかどうかはよくわかりません。ここでいくつかの助けをいただければ幸いです。さらに、マングースでこれを解決する方法についての明確な説明コードの例です。