我正在尝试在我的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"
答案 0 :(得分:1)
好吧,你要么在架构中设置为true。或者false,默认为空。在这种情况下,您无法将两种方式都清空或提供值。
你可以使用的黑客就是这个。 只需将required设置为true,并在数据输入时最初推送零数组。
model.push([0,0,0]);