我在mongodb的集合中存储了一个对象
{
"students" : {
"[email protected]" : {"gender" : "M", "marks" : 30},
"[email protected]" : {"gender" : "M", "marks" : 40}
}
}
字符串
我尝试使用以下代码片段更新id为“email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)“的学生的分数:
db.getCollection('school').updateOne(
{
$set:{
"[email protected]": {
"gender":"M",
"marks": 40
}
}
}
)
型
但它不是更新现有的记录,而是创建一个新的对象,如下所示:
{
"students" : {
"[email protected]" : {"gender" : "M", "marks" : 30},
"[email protected]" : {"gender" : "M", "marks" : 40},
"xyz@gmail" : {"com" : {"gender" : "M", "marks" : 40}}
}
}
型
所以,这是因为电子邮件ID中的.而发生的。mongodb有办法处理这个问题吗?感谢任何帮助,提前感谢!
1条答案
按热度按时间gc0ot86w1#
我把这个放在一个答案中,因为它不适合所有的评论。
我鼓励你读一下这个。
如果你继续在关键字中使用点,那么你会发现很难进行更新,并且会在应用程序中遇到很多问题。
我的建议是,如果可以的话,把结构改成这样:
字符串
这将允许你做:
型