あなたはこれを間違った方法で書いた。ウェアハウスの「id」値の一致は、「update」セクションではなく、ステートメントの「query」部分に属します。そのため、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)
また、"ドット表記"
にも注意してください。 配列要素のセレクターは単一のフィールドであるため、ここではフォームで問題ありません。通常、必要なのは $elemMatch
だけです。
一致を確立するために配列に複数のフィールドがある場合。