Вставить поле в объект - PullRequest
0 голосов
/ 09 мая 2020

Мне нужно вставить поле (req.body.firstname) в объект firstname.

Если такое поле (req.body.firstname) уже существует в объекте, добавьте id (req.body. user) в этот массив.

если такое поле (req.body.firstname) не существует, создайте его и добавьте к нему id (req.body.user).

enter image description here

Я думаю, нам следует использовать 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...