【发布时间】:2018-10-17 10:58:47
【问题描述】:
虽然我找不到类似问题的解决方案,但有一点新手问题,这对我有用。 这是我的收藏:
{
"_id": ObjectId("5bc712851224ceec702d9bdf"),
"index": "123456",
"name": "Jan",
"surname": "Nowak",
"grades": {
"IABD": [
2,
3.5,
4
],
"NPAD": [
4,
4,
5
]
}
}
现在我需要为特定(函数参数)课程提高成绩。
所以我尝试在几个层面上解决它,我希望有人能按照以下方式引导我完成它: 首先,我想成功不将课程作为参数传递:
function add_grade(index="123456", course="IABD", grade=5.5)
{
db.students.update( {"index" : index }, { $push: { "grades" : { "IABD" : grade } } } );
}
什么也没发生(成绩未添加到成绩列表中) 我想看到一些结果,所以我想看看 $set 是否会起作用并且确实有效!
function add_grade(index="123456", course="IABD", grade=5.5)
{
db.students.update( {"index" : index }, { $set: { "grades" : { "IABD" : grade } } } );
}
但它扔掉了我的整个成绩对象(如预期的那样)。至少我知道我在正确的轨道上。 问题 1:为什么 $push 没有按我预期的方式工作
问题2:set/push中如何使用course参数? 只是为了澄清Q2,我并不懒惰,我尝试了很多方法,但都没有奏效,请帮助!
【问题讨论】:
标签: javascript mongodb parameters nested location