我有一个生产API和MongoDB数据库,我以这种方式对集合执行更新(mongo shell语法表示):
db.lineups.update({_id: <some_object_id>}, <some_update>);
阵容集合得到了相关领域:
players
,是一个对象数组matchDate
,是round
属性为数字team
,是一个字符串现在我需要对此使用其他更新:
db.lineup.upate({team: <team_string_id>, 'matchDate.round': {$gte: <any_integer>}}, <update_object>)
所以我需要弄清楚这会如何影响数据库的更新和一般性能以及我如何应对它。
像{team: true, "matchDate.round": true}
这样的复合索引会有帮助吗?
要扩展有关架构设计的说明,以下句子适用于我的收藏:
lineup
个文档同一个团队。 lineup docs with distinct
matchDate.round`。 示例文档将是:
{
players: [{name: "Ramos", number: 4}, {name: "James", number: 10}, {name: "Isco", number: 23}],
matchDate: {round: 3, date: new Date()},
team: "key-real-madrid"
}