Схема Mongodb лучшее хранилище системы достижений - PullRequest
0 голосов
/ 21 марта 2019

Я собираюсь создать систему достижений в Mongodb. Но я не уверен, как мне отформатировать / сохранить его в базе данных.

Что касается пользователей, у которых должен быть прогресс (по каждому достижению у них будет сохранено некоторое количество progress value), я действительно запутался, что было бы лучшим способом сделать это, и без проблем с производительностью.

что мне делать? Потому что я не знаю, что я имел в виду, может быть что-то вроде:

Должен ли я хранить каждое достижение в уникальной строке в коллекции достижений и в пользовательском массиве в этой строке, содержащем объект с идентификатором пользователя и прогрессом достижения?

Получу ли я тогда проблему с производительностью, когда ее 1000+ достижений, которые часто проверяются феями?

или я должен сделать что-то еще?

пример схемы для указанной выше опции:

  {  
   name:{  
      type:String,
      default:'Achievement name'
   },
   users:[  
      {  
         userid:{  
            type:String,
            default:' users id here'
         },
         progress:{  
            type:Number,
            default:0
         }
      }
   ]
}
...