【发布时间】:2021-07-10 01:25:36
【问题描述】:
我正在尝试插入新数据并从 MongoDB 中删除数据,但不知道如何操作。
这有点复杂。
谁能教我怎么做?
例如, Class1-1 有 3 名学生,他们选修了几门不同的课程。
爱丽丝:数学、科学、音乐
Bob:数学、音乐、中文
卡尔:音乐、科学
我们将数据存储在 mongodb 中是这样的:
{
className: "1-1"
students:["Alice","Bob","Carl"],
subjects:[
{"Math":["Alice","Bob"]},
{"Science":["Alice","Carl"]},
{"Music":["Alice","Bob","Carl"]},
{"Chinese":["Bob"]}
]
}
我如何插入新学生或移除学生?
插入一个新学生
新生 --> Daniel:数学、英语
Step1. 将“Daniel”推送到“students”数组
Step2. 将“Daniel”推送到主题数组
Step2. 1.将“Daniel”推送到subjects.Math数组。
Step2.2.创建一个新主题subject.English,然后将“Daniel”推送到主题.英语
结果是
{
className: "1-1"
students:["Alice","Bob","Carl","Daniel"],
subjects:[
{"Math":["Alice","Bob","Daniel"]},
{"Science":["Alice","Carl"]},
{"Music":["Alice","Bob","Carl"]},
{"Chinese":["Bob"]},
{"Englsih":["Daniel"]}
]
}
移除学生:Bob
第 1 步: 从学生数组中删除“Bob”。
第 2 步: 从科目数组中删除“Bob”。
在第 2 步:有两种不同的情况。
情况1:我们事先知道 Bob 上了什么科目。
情况2:我们不知道什么科目鲍勃接过。
结果是
{
className: "1-1"
students:["Alice","Carl","Daniel"],
subjects:[
{"Math":["Alice","Daniel"]},
{"Science":["Alice","Carl"]},
{"Music":["Alice","Carl"]},
{"Chinese":[]},
{"Englsih":["Daniel"]}
]
}
如果subject数组同时为空,是否可以移除subject对象?
结果是
{
className: "1-1"
students:["Alice","Carl","Daniel"],
subjects:[
{"Math":["Alice","Daniel"]},
{"Science":["Alice","Carl"]},
{"Music":["Alice","Carl"]},
{"Englsih":["Daniel"]}
]
}
我们可以改变科目结构,处理起来会更容易
{
className: "1-1"
students:["Alice","Carl","Daniel"],
subjects:[
{"subject": "Math", "student":["Alice","Daniel"]},
{"subject": "Science", "student":["Alice","Carl"]},
{"subject": "Music", "student":["Alice","Carl"]},
{"subject": "Englsih", "student":["Daniel"]}
]
}
【问题讨论】:
标签: mongodb