«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как удалить объект из массива в MongoDB?

Как удалить объект из массива в MongoDB?

Опубликовано 19 ноября 2024 г.
Просматривать:253

How do I remove an object from an array in MongoDB?

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