Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

137
Visualizações
Updating sub array in JSON with a REST API in Mean Stack

I'm developing a MEAN stack application and I'm hung up on how to actually update a document that has been saved into the MongoDB already. I've seen that I have to use patch instead of post in my REST API paths, but it's still a little clouded to me. I want to insert a new Package into the Package JSON Array in the User JSON.

Possible Duplicate, but he's overriding a value in the array and not adding a new object into it.

My JSON Schema:

//User schema
const UserSchema = mongoose.Schema({
  name: {
    type: String
  },
  email: {
    type: String,
    require: true
  },
  username:{
    type:String,
    required: true
  },
  password:{
    type:String,
    required: true
  },
  packages: [{
    from: String,
    to: String,
    tracking: String

  }]
});

My REST API Paths

//Update
router.patch('/update', (req, res) => {
  const username = req.body.username;
  const packages = req.body.packages;

  User.getUserByUsername(username, (err, user) => {
    if(!user){
      return res.json({success: false, msg: 'User not found'});
    } else {
      User.addPackages(user, req.body.packages, (err, user) => {
        if(err){
          res.json({success: false, msg:'Failed to update packages'});
        } else {
          res.json({success: true, msg:'update packages'});
        }
      })
    }
  });
});

My Module's:

module.exports.addPackages = function(user, packages, callback){
  User.findOneAndUpdate(
    {username:user.username},
    {$push: {"packages" : {
      "to" : packages.to,
      "from" : packages.from,
      "tracking" : packages.tracking
    }}},
    {new:true},
    function(err, newPackage){
      if (err) throw err;
    });
}

module.exports.getUserById = function(id, callback){
  User.findById(id, callback);
}

module.exports.getUserByUsername = function(username, callback){
  const query = {username: username}
  User.findOne(query, callback);
}

They're updating into my MongoDB, but just the object ID and not the values...

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

db.your_collection.update({},
                          {$set : {"new_field":1}},
                          {upsert:false,
                          multi:true}) 
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda