#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 Спасибо за ответ. Я отредактировал свой пост. Я был бы признателен, если бы вы могли провести с ним некоторое время снова