更新Mongodb中的嵌入式阵列值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更新Mongodb中的嵌入式阵列值相关的知识,希望对你有一定的参考价值。

我在Mongo DB Collection中有以下内容

我需要能够将阿森纳的积分更新为等于巴塞罗那的积分。我见过的任何视频教程似乎都没有提供这样的基本功能。

我认为在Mongodb中这是可能的吗?

db.teams.insert({
    team_id: "spa1",
    date_founded: new Date("Oct 04, 1912"),
     league: "La Liga",
     points: 80,
     name: "Barcelona",
     players: [ { p_id: "Messi", goal: 195, caps: 189, age: 30 },
              { p_id: "Valdes", goal: 0, caps: 158, age: 27 },
              { p_id: "Iniesta", goal: 72, caps: 25, age: 31},
              { p_id: "Pique", goal: 9, caps: 201, age: 38 } ]
     });



db.teams.insert({
    team_id: "eng2",
    date_founded: new Date("Oct 04, 1899"),
     league: "Premier League",
     points: 52,
     name: "Arsenal",
     players: [ { p_id: "Mata", goal: 5, caps: 24, age: 27 },
              { p_id: "Bergkamp", goal: 95, caps: 98, age: 48 } ]
     });
答案

您可以使用两个单独的查询执行此操作:

// find the barcelona document first
var cursor = db.teams.find({team_id: "spa1"});
var barcelona = cursor.next();
// set the arsenal points equal to barcelona ones
db.teams.update({team_id: "eng2"}, {$set: {"points": barcelona.points}});

以上是关于更新Mongodb中的嵌入式阵列值的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spring Data MongodB 更新嵌入式 mongodb 文档中的数组字段?

《MongoDB入门教程》第17篇 文档更新之$mul操作符

《MongoDB入门教程》第17篇 文档更新之$mul操作符

过滤和更新 mongodb mongoose 中的嵌入式数组

如何根据另一个字段更新 mongodb 中的数组 dict 元素

如何优化C ++代码的以下片段 - 卷中的零交叉