Вы можете использовать модификатор $pull
операции update
для удаления определенного элемента в массиве. Если вы предоставили запрос, он будет выглядеть так:
db.people.update({"name":"dannie"}, {'$pull': {"interests": "guitar"}})
Кроме того, вы можете использовать $pullAll
для удаления всех вхождений. Подробнее об этом на странице официальной документации - http://www.mongodb.org/display/DOCS/Updating#Updating-%24pull
Это не использует индекс as критерии удаления элемента, но могут помочь в случаях, подобных вашим. IMO, используя индексы для адресации элементов внутри массива, не очень надежна, поскольку mongodb не согласован по порядку элементов как fas, как я знаю.