Написахте това по грешен начин. Съвпадението на стойността на "идентификационния номер" на склада принадлежи към частта "заявка" на вашето изявление, а не в секцията "актуализация". Поради това не искате UpdateId
вариант, но Update
тъй като позволява по-широк избор на заявка:
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)
Също така имайте предвид, че "нотация с точки"
form е добре тук, тъй като вашият селектор за елемента на масива е просто едно поле. Обикновено се нуждаете само от $elemMatch
когато има повече от едно поле в масива за установяване на съвпадението.