gpt4 book ai didi

node.js - Mongoose 为什么要添加空白数组?

转载 作者:IT老高 更新时间:2023-10-28 13:04:43 26 4
gpt4 key购买 nike

我正在尝试通过我的 node.js 应用程序开始使用 Mongoose 作为 MongoDB 的 ODM。我注意到,当我设计一个带有嵌入式文档的模式时,如果我不向它添加值,它会在 Mongo 中存储一个空白数组“[]”。为什么是这样?我正在尝试存储对记录的历史更改,而空白数组意味着该更改删除了该值。这是一个示例架构。

schema.Client = new mongoose.Schema({
name:{type:String, required:true},
products:[{
name:{type:String, index:true},
startDate:Date,
endDate:Date
}],
subdomain:{type:String, index:{unique:true}},
})

这是我保存仅包含名称和子域的文档时生成的文档。

{
"name": "Smith Company",
"products": [],
"subdomain": "smith"
}

为什么会默认添加带有空白数组的产品,如何停止?

最佳答案

您可以通过定义如下架构来解决问题:

products: {
type: [{
name:String,
startDate:Date,
endDate:Date
}],
default: undefined
}

关于node.js - Mongoose 为什么要添加空白数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12658152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com