MongoDB: Removendo um objeto de um array
No MongoDB, você pode remover um objeto de um array incorporado em um documento usando o $ operador de puxar. Se você deseja remover um objeto específico de uma matriz, você precisa fornecer uma consulta que corresponda ao objeto exato.
Considere o seguinte documento:
{
_id: 5150a1199fac0e6910000002,
name: 'some name',
items: [{
id: 23,
name: 'item name 23'
},{
id: 24,
name: 'item name 24'
}]
}
Para remover o item com id: 23 do array de itens, use o seguinte comando:
db.mycollection.update( { '_id': ObjectId("5150a1199fac0e6910000002") }, { $pull: { items: { id: 23 } } }, false, // Upsert true, // Multi );
Este comando atualiza o documento removendo o item do array. A consulta especifica o documento usando o campo _id, e o operador $pull tem como alvo a matriz de itens. Dentro da operação $pull, você pode especificar uma consulta que corresponda ao objeto a ser removido. Neste caso, combinamos o objeto com o id: 23.
Implementação do Mongoose/Node.js
No Mongoose, você pode remover um objeto de um array usando o Método pull():
const Model = mongoose.model('Model', new mongoose.Schema({
items: [{
id: Number,
name: String
}]
}));
Model.update(
{ '_id': '5150a1199fac0e6910000002' },
{ $pull: { items: { id: 23 } } },
{ multi: true }, // Update all matching documents
(err, result) => { if (!err) console.log(result); }
);
Este código removerá o item com id: 23 da matriz de itens de todos os documentos que correspondem ao _id especificado.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3