MongoDB: удаление объекта из массива
В MongoDB вы можете удалить объект из массива, встроенного в документ, с помощью $ оператор вытягивания. Если вы хотите удалить определенный объект из массива, вам необходимо предоставить запрос, соответствующий точному объекту.
Рассмотрите следующий документ:
{
_id: 5150a1199fac0e6910000002,
name: 'some name',
items: [{
id: 23,
name: 'item name 23'
},{
id: 24,
name: 'item name 24'
}]
}
Чтобы удалить элемент с идентификатором: 23 из массива элементов, используйте следующую команду:
db.mycollection.update( { '_id': ObjectId("5150a1199fac0e6910000002") }, { $pull: { items: { id: 23 } } }, false, // Upsert true, // Multi );
Эта команда обновляет документ, удаляя элемент из массива. В запросе указывается документ с использованием поля _id, а оператор $pull нацелен на массив элементов. В операции $pull вы можете указать запрос, соответствующий удаляемому объекту. В данном случае мы сопоставляем объект с идентификатором: 23.
Реализация Mongoose/Node.js
В Mongoose вы можете удалить объект из массива с помощью Метод 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); }
);
Этот код удалит элемент с идентификатором: 23 из массива элементов всех документов, соответствующих указанному _id.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3