MongoDB updating fields in nested array
database, mongodb, php
Solution
You can't. The positional operator is only available for the first array in your document hierarchy. As such you cannot manipulate individual elements of deeper nester arrays.
It's a known issue and is scheduled for development here : https://jira.mongodb.org/browse/SERVER-831
Until that time you'll have to normalize your schema a bit I'm afraid.
Problem
MongoDB updating fields in nested array How can I set "play" to "play photo" in the `photos` array? I only know its `_id`. ``` "_id": ObjectId("4f41a5c7c32810e404000000"), "albums": [ { "_id": ObjectId("4f545d1bc328103812000000"), "name": "album1" , "photos":[{ "_id": ObjectId("4f545d1bc328103812d00000"), "name":"travel photo" },{ "_id": ObjectId("4f545d1bc328103812c00000"), "name":"play" }] }, { "_id": ObjectId("4f545f56c328103c12000000"), "name": "album2" }, { "_id": ObjectId("4f545f68c328103012000000"), "name": "album3" }, { "_id": ObjectId("4f546642c328103c12000001"), "name": "album4" }] ```