Чтобы удалить элемент массива по индексу в MongoDB, вы можете использовать различные методы. Вот несколько вариантов:
-
Использование оператора
$unsetс позиционным оператором$:db.collection.update( { _id: ObjectId("<document_id>") }, { $unset: { "array_field.$": 1 } } ) -
Использование оператора
$pull:db.collection.update( { _id: ObjectId("<document_id>") }, { $pull: { array_field: { $exists: true }, $position: <index> } } ) -
Использование оператора
$pullAll:db.collection.update( { _id: ObjectId("<document_id>") }, { $pullAll: { array_field: [null] } } ) -
Использование оператора
$setс фильтруемым позиционным оператором$[:] db.collection.update( { _id: ObjectId("<document_id>") }, { $set: { "array_field.$[element]": null } }, { arrayFilters: [{ "element.$[identifier]": { $exists: true } }], multi: true } )
Обратите внимание, что в каждом методе вам необходимо заменить фактическим идентификатором документа, а – индексом элемента, который вы хотите удалить..