我在搞mongodb和node.这个周末,我遇到了一些麻烦,无法通过mongodb文档来更新嵌套对象/文档.

我有一个Collection ,里面的文件是这样的..

{
 gameName: "string",
 slug: "string",
 players: [{playerName, playerScore}, ...]
}

我想知道如何在playerName的基础上增加playerScore的价值.

我想这主要是因为我不理解NoSQL方法.我甚至对为玩家使用数组还有第二个 idea ,所以任何输入都将不胜感激.

谢谢

推荐答案

你想要的 struct 是:

{
 gameName: "string",
 slug: "string",
 players: [ { playerName: "string", playerScore: number} ] , ...]
}

如果玩家的名字是乔,你可以使用以下方法将其得分增加1:

db.collection.update( {"players.playerName":"Joe"}, { $inc : { "players.$.playerScore" : 1 } }

Mongodb相关问答推荐

如何从文档列表的数组内部打印一个对象?

在MongoDB中,如何使用$in来匹配存储在数组变量中的值

GO:如何在MongoDB中区分空字符串和nil

无法在Ubuntu 22.04上安装MongoDB 7.0

MongoDB聚合$group阶段$top与$first在大型数据集上的效率

可变用户 Select

在亚马逊 EC2 上托管 nodeJS/mongoose Web 应用程序

TypeError:Cannot read property '_id' of undefined

如何将 json 字符串编组到 bson 文档以写入 MongoDB?

Mongoexport 在日期范围内使用 $gt 和 $lt 约束

将 MongoDB 地理空间索引与 3d 数据结合使用

在mongo聚合中将ObjectID转换为字符串

mongodb 模式设计命名约定

将 mongoose 字符串模式类型默认值设为空白并使该字段可选

如何使用 mongodb 和 php 正确处理分页查询?

mongodb无法启动

使用 MongoDB 进行嵌套分组

Mongoose.js:嵌套属性的原子更新?

Python Django-REST-framework 和 Angularjs 的文件夹 struct

查找聚合性能差