【发布时间】:2023-03-15 04:03:01
【问题描述】:
我正在构建一个基于浏览器的回合制 RPG,并构建了一个示例如下的数据模型。当玩家进行战斗时,读取和写入都将执行“灵魂”和“物品”子文档(数组),并进一步读取“技能”和“角色”子文档。我想每个数组都有 1-30 个子文档
为了提高性能,我尝试将几乎所有逻辑都包含在一个集合中,但是我在嵌套方面做得太过分了吗?
听说 MongoDB/MeteorJS 在使用嵌套数组时性能不佳,想了解一下这种数据模型是否可行?
email: 'a@test'
password: 'f321'
profile:
character:
_id: 'c001'
location: 'Isenheim'
name: 'Ugyr'
race: 'human'
level: 1
experience: 1
maxHealth: 10
curHealth: 10
curAp: 10
maxAp: 10
flagged: false
gold: 0
souls: [
_id: 'S001'
name: 'Hound'
race: 'beast'
cost: 5
active: false
maxHealth: 5
curHealth: 5
maxAp: 6
curAp: 6
skills: [
name: 'Bite'
damage: 1
cost: 2
,
name: 'Shred'
damage: 2
cost: 4
effects:
name: 'Bleeding'
duration: 2
type: 'subtractive'
stats: ['curHealth']
value: 1
]
]
skills: [
name: 'Slash'
type: 'direct'
damage: 2
cost: 2
,
name: 'Pierce'
type: 'direct'
damage: 3
cost: 3
,
name: 'Throwing Knives'
type: 'direct'
damage: 1
cost: 1
]
items:
equiped:
weapon:
name: 'Rusty Knife'
attack: 2
shield: null
inventory: [
name: 'Potion'
type: 'consumable'
effects:
type: 'additive'
stats: ['curHealth', 'curAp']
value: 3
amount: 500
,
name: 'Minor Soul Stone'
type: 'consumable'
amount: 500
effects: [
type: 'additive'
stats: ['curAp']
value: 2
,
type: 'subtractive'
stats: ['curHealth']
value: 1
]
,
name: 'Health Potion'
type: 'consumable'
amount: 100
effects: [
type: 'additive'
stackable: false
stats: ['curHealth']
value: 1
duration: 2
]
]
conditions: [
]
【问题讨论】: