Mongoose设置默认数组大小和值

时间:2017-03-10 22:10:30

标签: node.js mongodb mongoose mongoose-schema

我正在尝试在我的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"

1 个答案:

答案 0 :(得分:1)

好吧,你要么在架构中设置为true。或者false,默认为空。在这种情况下,您无法将两种方式都清空或提供值。

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

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