猫鼬设置默认数组大小和值

Mongoose setting default array size and values

我正在尝试在我的 mongoose 模式中设置默认数组大小和值,但 return 总是显示为 [],除非文档实际上有数据。

"transform": { type: [ Number ], default: [0, 0, 0] }

Return值为:

"transform":[]

我如何配置我的模式以便 returns:

"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] }}
);

注意:我的 t运行sform 字段是属性的子字段,因此 "properties.transform"

好吧,要么在架构中将 required 设置为 true。或 false,默认为空。在这种情况下,您不能同时为空或提供值。

你可以使用的技巧是这个。 只需将 required 设置为 true,并在数据输入时最初推送零数组。

model.push([0,0,0]);