Я собираюсь создать систему достижений в Mongodb. Но я не уверен, как мне отформатировать / сохранить его в базе данных.
Что касается пользователей, у которых должен быть прогресс (по каждому достижению у них будет сохранено некоторое количество progress value
), я действительно запутался, что было бы лучшим способом сделать это, и без проблем с производительностью.
что мне делать? Потому что я не знаю, что я имел в виду, может быть что-то вроде:
Должен ли я хранить каждое достижение в уникальной строке в коллекции достижений и в пользовательском массиве в этой строке, содержащем объект с идентификатором пользователя и прогрессом достижения?
Получу ли я тогда проблему с производительностью, когда ее 1000+ достижений, которые часто проверяются феями?
или я должен сделать что-то еще?
пример схемы для указанной выше опции:
{
name:{
type:String,
default:'Achievement name'
},
users:[
{
userid:{
type:String,
default:' users id here'
},
progress:{
type:Number,
default:0
}
}
]
}