Мне нужно вставить поле (req.body.firstname) в объект firstname.
Если такое поле (req.body.firstname) уже существует в объекте, добавьте id (req.body. user) в этот массив.
если такое поле (req.body.firstname) не существует, создайте его и добавьте к нему id (req.body.user).
Я думаю, нам следует использовать findOneAndUpdate, но я не понимаю, как его использовать.
router.post('/bio/firstname', (req, res) => {
console.log(req.body.id) //d9aa8566-75fe-4108-a72e-1b67e79cf40c
console.log(req.body.user) //5e7f164771c90130441c0102
console.log(req.body.firstname) //кот
Habalka.find({
_id: req.body.id
})
.then(habalka => {
console.log(habalka[0].bio.firstname)
Habalka.findOneAndUpdate(
{
"bio.firstname": req.body.firstname
},
{$push: {[`bio.$.firstname.${req.body.firstname}`]: '12123'}},
{new: true}
)
.then((data) => {
res.json({error: false, data: data})
});
})
});
модель
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const HabalkaSchema = new Schema({
_id: {
type: String
},
bio: {
firstname: {},
lastname: {},
middlename: {},
company: {}
},
rating: [
],
files: [
{
_id: {
type: String
},
destination: {
type: String
},
filename: {
type: String
},
path: {
type: String
},
folder: {
type: String
},
info: {
size: {
type: Number
},
mimetype: {
type: String
},
encoding: {
type: String
},
originalname: {
type: String
},
fieldname: {
type: String
},
},
date: {
type: Date,
default: Date.now
},
bio: {
type: Object
},
userId: String,
guessId: {},
}
],
date: {
type: Date,
default: Date.now
}
});
module.exports = Habalka = mongoose.model('habalka', HabalkaSchema);