bagai mana update di mongoose dengan addToSet

ASK mongoose addToSet Saya punya schema begini

var PegawaiSchema = new Schema({
nama: String,
absensi: [Schema({
gaji: Number,
tanggal: String,
hadir: String
})]
});
dan saya ingin addToSet di absensi
saya melakukan dengan cara ini
var addtoset = {
$addToSet:{
gaji:req.body.gaji,
hadir:req.body.hadir,
tanggal:moment().format('DD MM Y'),
}
}
models.Pegawai.findByIdAndUpdate({'_id': req.params.id}, addtoset,function(err, data){
if(err) res.json({'message':err})
else res.json({'message':'succes insert absensi'});
})

laporan nya sudah succes. tapi saya liad data nya tidak nambah. udah muter2 google ga ketemu jugaa ketemu juga

avatar ardyhim
@ardyhim

289 Kontribusi 175 Poin

Diperbarui 8 tahun yang lalu

4 Jawaban:

kalo agan paramter addtosetnya langsung dimasukin bisa ngga ya? { $addToSet: { array: "" }} jadi

models.Pegawai.findByIdAndUpdate({'_id': req.params.id}, { $addToSet:{..}  }, ...
avatar immeng
@immeng

10 Kontribusi 18 Poin

Dipost 8 tahun yang lalu

sama saja mas, laporan nya succes tapi ga ke input. saya coba lewat mongo lansung juga succes tapi ga nambah data nya. mungkin mas punya dokumentasi tentang mongoose addToSet push pushAll sama tentang schema nya

avatar ardyhim
@ardyhim

289 Kontribusi 175 Poin

Dipost 8 tahun yang lalu

kenapa ya... dari sini gan, ngeliat parameternya sih udah bener http://mongoosejs.com/docs/api.html

avatar immeng
@immeng

10 Kontribusi 18 Poin

Dipost 8 tahun yang lalu

Jawaban Terpilih

[solved] dengan ini

var PegawaiSchema = new Schema({
      nama: String,
      absensi: [Schema({
        gaji: Number,
        hadir: String,
        date: Date,
      })],
    });
// insert data ke mongodb
var data = {
  gaji:'5000',
  hadir:'true',
  date: new Date()
}
var tambah = new Pegawai({
  nama: 'ardyhim',
  absensi: [data]
});
tambah.save(function(err,data){
  if(err) console.log(err);
  else console.log('succes');
})

// Menabhakan array di absensi
var data = {
  gaji:'50400',
  hadir:'true',
  date: new Date()
}
Pegawai.findByIdAndUpdate({'_id':'569eb6dc2802a8e812f20242'},{$addToSet:{absensi:data}},function(err,data){
  if(err) console.log(err)
  else console.log(data);
});
avatar ardyhim
@ardyhim

289 Kontribusi 175 Poin

Dipost 8 tahun yang lalu

Login untuk ikut Jawaban