sql >> Database >  >> NoSQL >> MongoDB

MongoDB werkt velden in geneste array bij

Dit probleem is opgelost. Functie voor het bijwerken van velden in geneste array van objecten, is beschikbaar in MongoDB 3.6+ versies. Bekijk hier positionele operators (allemaal en met id).

//Update all docs in collection matching photo name "play" to "play photo"
db.collectioname.update(
    {},
    { $set: { "albums.$[].photos.$[photo_field].name": "play photo" } },
    { arrayFilters: [  {"photo_field.name": "play"} ], multi: true}
);

//Update this specific doc given in question matching photo name "play" to "play photo"
db.collectioname.update(
    {"_id" : ObjectId("4f41a5c7c32810e404000000")},
    { $set: { "albums.$[].photos.$[photo_field].name": "play photo" } },
    { arrayFilters: [  {"photo_field.name": "play"} ]}
);

Dit is voor de hulp van mensen die hier komen na MongoDB 3.6



  1. MongoDB $grootte

  2. MongoDB insertOne()

  3. Bouw een reactieve publicatie met extra velden in elk document

  4. MongoDB-instanties bewaken met behulp van MongoDB Monitoring Service (MMS)