Last active
January 28, 2022 02:53
-
-
Save Uriel29/1fba5e4e10512500959e740f82a3a024 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const listagem = new mongoose.Schema({ | |
nome: { type: String, required: [true, 'Nome'] }, | |
//lista:[{nome:String, sobrenome: String, numeroSerial: Number}], | |
lista:{type : Array,validate: v => Array.isArray(v) && v.length > 0}, | |
}); | |
const listagemModel = mongoose.model('listagem', listagem); | |
const edit = async docEdited => { | |
const {lista, _id, createdBy } = docEdited | |
const documento = await listagemModel.findOne({ | |
_id,createdBy:mongoose.Types.ObjectId(userId) | |
}) | |
// Dentro da lista de documento.lista | |
// [ | |
// {nome:'Manuel', sobrenome:'marcopolo', numeroSerial:887]}, | |
// {nome:'carlos', sobrenome:'grmald', numeroSerial:9999]},//numeroSerial antigo serial | |
// ] | |
//comparo a lista de docEdited com a do documento | |
//tudo que estiver diferente será atualizado | |
conts novaLista = [ | |
{nome:'carlos', sobrenome:'grmald', numeroSerial:889889},//numeroSerial editado | |
{nome:'adicionado', sobrenome:'santes', numeroSerial:77} //novo campo | |
] | |
documento.lista = novaLista; | |
documento.markModified('lista') | |
//https://mongoosejs.com/docs/api/document.html#document_Document-markModified | |
const result await campanha.save() | |
console.log(result) | |
/// retorna tudo modificado | |
// OLHANDO NO BANCO NÃO ESTA SALVO | |
//olhando o log do mongoose tem apenas um $PUSH | |
//>> Mongoose: listagem.updateOne({ _id: new ObjectId("61f3544a4a9a7fe6d43eb75a") }, { '$push': { lista: { '$each': [ { nome: 'adicionado', sobrenome: 'santes', numeroSerial:77 } ] } }, '$unset': { qrCode: 1, boasVindasCheck: 1 }, '$set': { editadoEm: new Date("Fri, 28 Jan 2022 02:26:40 GMT") }, '$inc': { __v: 1 }}, { session: null }) | |
// se trocar la em cima para isso > lista:[{nome:String, sobrenome: String, numeroSerial: Number}], | |
// sem mudar mais nenhuma virgula no código todo | |
//funciona da maneira correta | |
//>> Mongoose: listagem.updateOne({ _id: new ObjectId("61f35596face37347582e311"), __v: 0 }, { '$set': { lista: [ {nome:'carlos', sobrenome:'grmald', numeroSerial:889889, _id: new ObjectId("61f35596face37347582e312") }, { nome: 'carlos', sorenome: 'grmald', numeroSerial: 9999 , _id: new ObjectId("61f355a8face37347582e319") } ], textoBoasVindas: '\n', editadoEm: new Date("Fri, 28 Jan 2022 02:32:08 GMT") }, '$unset': { qrCode: 1, boasVindasCheck: 1 }, '$inc': { __v: 1 }}, { session: null }) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment