私はmongooseスキーマでデフォルトの配列サイズと値を設定しようとしていますが、ドキュメントに実際にデータがない限り、返り値は常に[]
と表示されます。Mongooseのデフォルトの配列サイズと値の設定
"transform": { type: [ Number ], default: [0, 0, 0] }
戻り値は次のとおりです。
それは返すので、私は私のスキーマを設定するにはどうすればよい"transform":[]
:
"transform":[0,0,0]
回答: はrequired: true
を設定するには、新しいドキュメントにデータを追加します作成した。ただし、古い文書は更新されません。すぐに私のデータの問題を解決するには
"transform": { type: [ Number ], default: [0, 0, 0], required: true }
更新 私は次の行を使用して、すべての既存のドキュメントをアップグレードするにはMongoの上のアップデートを実行しました。
db.getCollection('objects').updateMany(
{ "properties.transform": []},
{ $set: { "properties.transform" : [0,0,0] }}
);
注:私のフィールドを変換するので、まあその、あなたが設定したスキーマに真に必要ないずれか"properties.transform"
ゼロは空白と見なされます – Remario
これをオーバーライドするにはどうしますか?私は1,1,1を使用することができます(ちょうどテストされ、それは動作します)が、理想的ではありません。 – stuffyjoelab
[なぜ私のスキーマがmongoose配列にデフォルト値を追加しないのですか?](http://stackoverflow.com/questions/31845282/why-doesnt-my-schema-to-add-default-values-in -mongoose-arrays) –