MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

mgo:cara memperbarui array tertentu dalam dokumen

Anda menulis ini dengan cara yang salah. Kecocokan pada nilai "id" gudang termasuk dalam bagian "permintaan" dari pernyataan Anda dan bukan di bagian "perbarui". Dengan demikian, Anda tidak ingin UpdateId varian, tetapi Update karena memungkinkan pemilihan kueri yang lebih luas:

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)

Perhatikan juga bahwa "notasi titik" form baik-baik saja di sini karena pemilih Anda untuk elemen array hanyalah bidang tunggal. Anda biasanya hanya membutuhkan $elemMatch ketika ada lebih dari satu bidang dalam larik untuk menetapkan kecocokan.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengembalikan Mono<UpdateResult> dengan template MongoDB Reaktif

  2. Bagaimana cara menghindari pengecualian Prematur mencapai akhir aliran menggunakan driver mongoDB Java 3.4+ atau 3.6+? (selama penyisipan)

  3. Menggunakan indeks Geospasial MongoDB dengan data 3d

  4. Operator dekat untuk kesalahan pengembalian titik geojson saat jarak maksimum digunakan dalam kueri

  5. Menghapus elemen dari array di mongodb