MongoDB – NodeJs – 超出最大调用堆栈大小
2017-04-06
1398
在 MongoDB/NodeJs(使用 Mongoose)中保存以下架构时,我收到此错误: Uncaught RangeError:超出最大调用堆栈大小。
当我在数组中的架构中添加详细信息时,会发生这种情况:
var mongoose = require('mongoose');
const Attribute = new mongoose.Schema({
context: String,
format: String,
measurand: String,
location: String,
unit: String
});
const Value = new mongoose.Schema({
value: Number,
attributes: Attribute
});
module.exports = mongoose.model('MeterValue',{
chargeBoxID: {type: String, ref: 'ChargingStation'},
connectorId: Number,
transactionId: Number,
timestamp: Date,
values: [Value]
});
有什么想法吗?
提前致谢! Serge。
2个回答
我认为您必须为数组中的模型定义一个额外的模式。
类似于:
const AddressSchema mongoose.Schema({
address1: { type: String },
address2: { type: String },
});
...
module.exports = mongoose.model('Person',{
_id: String,
name: String,
address: [ AddressSchema ],
});
Locco0_0
2017-04-07
我还收到错误
Uncaught RangeError: Maximum call stack size reached.
当我尝试保存字段内的对象列表时,发生了这种情况。我发现你不应该按原样传递列表。
我有一个名为
Order
的模型,它接受
Items
列表。
将整个过程分为两个步骤:
-
只需创建没有列表的
Order
模型即可 -
使用
.findByIdAndUpdate
const order = await OrderModel.create({
status: "initiated",
createdAt: new Date(),
});
await OrderModel.findByIdAndUpdate(order, {
$push: {
items: cartItems,
},
});
这里的 items 是模型内接受项目列表的字段。 这样,你就不会遇到超出最大堆栈大小的问题。希望对你有帮助。
Kishan Kumar
2023-09-15