【问题标题】:JS Array in JSON by Mongoose SchemaMongoose Schema 中的 JSON 中的 JS 数组
【发布时间】:2026-01-21 00:25:02
【问题描述】:

我无法访问数组中的数组的问题。这是我的 Mongoose 架构:

const newSchema = mongoose.Schema({
    email            : String,
    name              : String,
    array : [Number]
})

这是我放入数组的数据:

{
  "array": [
    -11,
    "10,10,0",
    "1"
  ]
} 

现在我正在尝试像这样更新第二行中的值“10”:

newAccount.array[3,0] = parseInt(someVariable)

或者像这样

newAccount.array[3][0] = parseInt(someVariable)

但值在任何情况下都不会改变。如何正确更改?

【问题讨论】:

  • 您的架构有一个 Number 类型的数组,但您的数据中有字符串。另外,您是否尝试在“10,10,0”中更新“10”? ...这是一个字符串而不是数组
  • 你能展示一个有效的 JSON 记录吗?

标签: javascript arrays json mongoose mongoose-schema


【解决方案1】:

这是解决您的问题的快速而肮脏的解决方案:

var obj = {
    array: [
        -11,
        '10,0,0',
        12
    ]
}
// splitting by ',' char
const newArray = obj.array[1].split(',')
// enter your new variable here.
newArray[0] = parseInt(someVariable);
// join them together so that we have the old structure back.
obj.array[1] = newArray.join(',');

console.log(obj);

更好的方法是以这种方式重组您的数据扩充,即您没有混合类型。

以及结果:

【讨论】: