sql >> Databáze >  >> NoSQL >> MongoDB

mgo:jak aktualizovat konkrétní pole v dokumentu

Napsal jsi to špatně. Shoda s hodnotou „id“ skladu patří do části „dotaz“ vašeho výpisu, nikoli do sekce „aktualizace“. Jako takový nechcete UpdateId varianta, ale Update protože umožňuje širší výběr dotazů:

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)

Všimněte si také, že "tečková notace" forma je zde v pořádku, protože váš selektor pro prvek pole je pouze singulární pole. Obvykle potřebujete pouze $elemMatch když je v poli více než jedno pole pro stanovení shody.




  1. Převod dotazu Mongo na Laravel, vnořený elemMatch

  2. Jak přidat hodnoty k objektu bson.D

  3. Vztahy many-to-many v CouchDB nebo MongoDB

  4. Třída generovaná Mapstruct používá Lombok builder od rodiče místo potomka