【发布时间】:2021-01-30 21:38:13
【问题描述】:
我正在使用 mongodb 3.6.20、mongoose 5.10.9 和节点 14.13.1
情况如下。 我想向 db 插入一个复杂的对象。该对象包含一个对象数组,其中每个对象还包含一个对象数组。这些对象由设置 id 的客户端提供(O 无权更改客户端)。我想删除 id 并让 mongo 驱动程序处理它们并生成新的。
给出了什么:
let obj = {
property1: {
property2: "str",
property3: 3
},
property4 : [{
_id: "a valid mongo id",
property5: "str",
property6: [{
_id: "another valid mongo id",
property7: "str"
}]
}]
}
我想提供什么来插入查询:
let obj = {
property1: {
property2: "str",
property3: 3
},
property4 : [{
property5: "str",
property6: [{
property7: "str"
}]
}]
}
我尝试递归删除它们,但调用堆栈已超出。
有什么聪明的方法可以实现吗?我在 mongoose 文档中找到的选项 {_id: false} 和 {id:false} 实际上仅适用于查询的返回文档
【问题讨论】:
-
感谢您的评论。我碰到了那个帖子,但正如我所提到的,属性的递归删除会导致
Maximum call stack size exceeded.错误 -
您的递归删除中有一个错误。发布代码,人们会提供帮助。