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

Elemen larik pembaruan Mongo (.NET driver 2.0)

Butuh beberapa saat untuk mengetahui hal ini karena tampaknya tidak disebutkan dalam dokumentasi resmi mana pun (atau di mana pun). Namun saya menemukan ini di pelacak masalah mereka, yang menjelaskan cara menggunakan operator posisi $ dengan driver C# 2.0.

Ini harus melakukan apa yang Anda inginkan:

public void UpdateItemTitle(string agendaId, string itemId, string title){
    var filter = Builders<TempAgenda>.Filter.Where(x => x.AgendaId == agendaId && x.Items.Any(i => i.Id == itemId));
    var update = Builders<TempAgenda>.Update.Set(x => x.Items[-1].Title, title);
    var result = _collection.UpdateOneAsync(filter, update).Result;
}

Perhatikan bahwa Item.Single() . Anda klausa telah diubah menjadi Item.Any() dan pindah ke definisi filter.

[-1] atau .ElementAt(-1) tampaknya diperlakukan secara khusus (sebenarnya semuanya <0) dan akan diganti dengan operator posisi $ .

Di atas akan diterjemahkan ke kueri ini:

db.Agenda.update({ AgendaId: 1, Items.Id: 1 }, { $set: { Items.$.Title: "hello" } })


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana memulai mongo db di windows

  2. Hitung dalam repositori Spring Data MongoDB

  3. Cara Mengakses MongoDB

  4. Apakah saya perlu menutup koneksi secara eksplisit?

  5. Kelompokkan berdasarkan elemen array tertentu dengan kerangka agregasi mongo