MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

mgo:jak zaktualizować konkretną tablicę w dokumencie

Napisałeś to w niewłaściwy sposób. Dopasowanie wartości „id” magazynu należy do części „zapytanie” wyciągu, a nie do sekcji „aktualizacja”. W związku z tym nie chcesz UpdateId wariant, ale Update ponieważ umożliwia szerszy wybór zapytań:

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)

Pamiętaj też, że "notacja z kropkami" formularz jest tutaj w porządku, ponieważ selektor elementu tablicy jest po prostu pojedynczym polem. Zazwyczaj potrzebujesz tylko $elemMatch gdy w tablicy jest więcej niż jedno pole, aby ustalić dopasowanie.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. jak pobrać 10 minut przed utworzeniem rekordów w mongodb

  2. Nie można połączyć się z MongoDB Atlas przy użyciu Mongoose z parametrami połączenia

  3. Mapa Hadoop/Redukcja vs wbudowana mapa/Redukcja

  4. MongoDB - obiekty? Dlaczego potrzebuję _id łącznie?

  5. meteor:jak mogę wykonać kopię zapasową mojej bazy danych mongo