Je hebt dit verkeerd geschreven. De overeenkomst op de magazijn "id" waarde hoort thuis in het "query" gedeelte van uw afschrift en niet in de "update" sectie. Als zodanig wilt u niet dat de UpdateId
variant, maar de Update
omdat het een bredere selectie van zoekopdrachten mogelijk maakt:
query := bson.M{
"_id": bson.ObjectIdHex(productId),
"location.warehouse": bson.ObjectIdHex(warehouseId)
}
update := bson.M{
"$set": bson.M{
"location.$.count": 4
}
}
err := coll.Update(query,update)
Merk ook op dat de "puntnotatie"
formulier is hier prima, omdat uw selector voor het array-element slechts een enkelvoudig veld is. Je hebt meestal alleen $elemMatch
nodig
wanneer er meer dan één veld in de array is om de overeenkomst vast te stellen.