Я хотел дать свой текущий код и посмотреть, есть ли быстрый способ реорганизовать это.Я просто пытаюсь сохранить дочерний элемент в родительский документ, а затем вернуть этот заполненный родительский элемент.
Моя проблема в том, что я не могу заставить его работать каким-либо другим способом, кроме этого, и я надеялся тамбыло что-то немного чище, так как мои данные в конечном итоге вложат несколько слоев.
Мои модели:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const BattletagSchema = new Schema({
battletag: {
type: String,
required: true
},
});
const UserSchema = new Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true
},
password: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
},
battletags: [{type: Schema.Types.ObjectId, ref: 'battletags'}]
});
const Battletag = mongoose.model('battletags', BattletagSchema);
const User = mongoose.model('users', UserSchema);
module.exports = {Battletag, User};
Мой контроллер:
const validateBattletagInput = require('../../validation/battletag');
const Battletag = require('../../models/Battletag');
const User = require('../../models/User');
const battletagController = {
addTag: (req, res) => {
const {
errors,
isValid
} = validateBattletagInput(req.body);
if (!isValid) {
return res.status(400).json(errors);
};
const newBattletag = new Battletag({
battletag: req.body.battletag
});
newBattletag.save();
User.findByIdAndUpdate(req.body.userId, {
$push: {
battletags: newBattletag._id
}
}, {
new: true
}).
populate('battletags').
then(response => {
res.json(response);
});
},
removeTag: (req, res) => {
}
}
module.exports = battletagController;
Короче говоря,это работает.Однако я хотел бы очистить его и, возможно, не нужно сохранять поддельный документ, запрашивать пользователя, затем выдвигать новый поддельный документ, возвращать новую копию, а затем заполнять.Есть ли в мангусте какой-нибудь метод, который более эффективен?Может быть, удастся сделать все за один ход?
Я был на этом день или два, поэтому любая помощь очень ценится.