лучшая модель схемы в моем случае (mongoose js)

#node.js #mongodb #mongoose

#node.js #mongodb #мангуст

Вопрос:

Мне нужен совет по схеме.

На данный момент это выглядит так, как показано ниже:

 const accountSchema = new mongoose.Schema({
  nickname:{
    index:true,
    type: String,
  },
  levels_scores: [Number],
  money: Number,
  skins: { circles: [Number], sticks: [Number], targets: [Number] },
  current_skins: { circles: Number, sticks: Number, targets: Number },
})
 

мои запросы всегда фильтруются по нику, поэтому я создал для него индекс.

Я очень часто обновляю денежную стоимость :

      saveMoney(req, res) {
    const nickname,money = req.body
  
  Accounts.findOneAndUpdate({ nickname:nickname},{money:money}),{useFindAndModify:false)
      res.sendStatus(200)
          }
 

Обратный вызов в случае вернет все данные документа, которые мне не нужны. (levels_sores, skins и т. Д.), Я думаю, Потери производительности

Я не так думаю? Должен ли я создавать схему со ссылками, например, money schema, которая хранит только родительский идентификатор и денежную стоимость?

У меня также есть такие запросы, как:

  Accounts.findOne({ nickname: req.body.nickname }, (err, account) => {
      const part = req.body.skin[0]
      const skin_number = req.body.skin[1]

      account.skins[part].push(skin_number)
      account.markModified("skins")
      account.save()
      res.sendStatus(200)
    })
 

Если я использую .выберите метод («skins»), чтобы не возвращать все данные документа, смогу ли я его сохранить?

Как бы мне это сделать, чтобы быть наиболее производительным?

Комментарии:

1. Не могли бы вы четко объяснить, чего вы хотите? Я не могу понять ваш вопрос.

2. @DebasisDas Спасибо за ответ. Я отредактировал свой пост. Я был бы признателен, если бы вы могли провести с ним некоторое время снова