Mongoose Schema 中的 JSON 中的 JS 数组
Posted
技术标签:
【中文标题】Mongoose Schema 中的 JSON 中的 JS 数组【英文标题】:JS Array in JSON by Mongoose Schema 【发布时间】:2017-10-17 06:59:49 【问题描述】:我无法访问数组中的数组的问题。这是我的 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 记录吗? 【参考方案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);
更好的方法是以这种方式重组您的数据扩充,即您没有混合类型。
以及结果:
【讨论】:
以上是关于Mongoose Schema 中的 JSON 中的 JS 数组的主要内容,如果未能解决你的问题,请参考以下文章
从另一个 mongoose.Schema 调用 mongoose.Schema 中的静态
如何使用 Mongoose 在 MongoDB 中插入 JSON 数组
如何在 Mongoose Schema 中的嵌套对象中需要元素
MongoDb - 要创建一个新的ObjectId,请尝试`Mongoose.Types.ObjectId`而不是使用`Mongoose.Schema.ObjectId`