この動作を実現するためには、Mongooseのスキーマオプションを調整する必要があります。以下に、シンプルで簡単な方法とコード例を示します。
- スキーマオプションを設定する方法:
Mongooseのスキーマオプションである
usePushEach
をfalseに設定することで、ネストされたオブジェクトが設定されていない場合にundefinedを返すことができます。以下は例です:
const schema = new Schema({
nestedObject: {
type: Object,
default: undefined
}
}, { usePushEach: false });
- オブジェクトがundefinedであるかどうかを確認する方法: Mongooseのプリフック(pre-hook)を使用して、オブジェクトがundefinedであるかどうかを確認し、必要な処理を実行することもできます。以下は例です:
schema.pre('save', function(next) {
if (!this.nestedObject) {
this.nestedObject = undefined;
}
next();
});
上記の例では、保存(save)操作が行われる前に、ネストされたオブジェクトがundefinedであれば明示的にundefinedを設定しています。
これらの方法を使用することで、Mongooseでネストされたオブジェクトが設定されていない場合にundefinedを返すことができます。適切な方法を選択し、開発のニーズに合わせて実装してください。