如何在双嵌套数组中推送值,如下面的代码所示!
{
"_id" : ObjectId("627ce38702f566ef8e89977a"),
"name" : "max",
"sub" : {
"type" : "maths",
"grades" : [
{
"semOne" : [
7,
8,
9
]
},
{
"semTwo" : [
9,
11,
12
]
}
]
}
}让我说我想在semOne中添加13,如何添加??
发布于 2022-05-12 12:29:26
您可以在update中使用$push和arrayFilters。
db.collection.update({
"_id": ObjectId("627ce38702f566ef8e89977a")
},
{
$push: {
"sub.grades.$[g].semOne": 13
}
},
{
arrayFilters: [
{
"g.semOne": {
$exists: true
}
}
],
multi: true
})这是供您参考的蒙戈游乐场。
发布于 2022-05-12 11:53:55
可能是这样的:
const object = {
"_id" : ObjectId("627ce38702f566ef8e89977a"),
"name" : "max",
"sub" : {
"type" : "maths",
"grades" : [
{
"semOne" : [
7,
8,
9
]
},
{
"semTwo" : [
9,
11,
12
]
}
]
}
}试试这个:
object.sub.grades[0].semOne.push(13)您可能会遇到错误,即.push不是一个函数,因为“等级”是一个数组,在这里您必须定义对象位置来推送某个东西。
https://stackoverflow.com/questions/72214957
复制相似问题