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

Pohon ekspresi tidak didukung di UpdateOneAsync

Masalah dimulai saat Anda mencoba membuat Update penyataan. Seperti yang mungkin Anda ketahui -1 diteruskan sebagai indeks akan menjadi diterjemahkan ke $ operator posisional . dokumentasi mengatakan bahwa

Selain itu, Anda mencoba membuat kondisi pemfilteran menggunakan SingleOrDefault dan driver .NET MongoDB tidak dapat menerjemahkannya ke operator sintaks kueri MongoDB mana pun.

Bagaimana cara memperbaikinya?

Alih-alih menggunakan operator posisi, Anda dapat mencoba menggunakan operator yang difilter posisi sintaks.

var filter = Builders<NodeBoardModel>.Filter.Eq(f => f.Id, sId);
var update = Builders<NodeBoardModel>.Update.Set("RemoteBoard.apps.$[app].objects.$[object].config_docs.$[configdoc].config_dt", dtUpdated);

var arrayFilters = new List<ArrayFilterDefinition>();
ArrayFilterDefinition<BsonDocument> appFilter = new BsonDocument("app.appname", new BsonDocument("$eq", sAppName));
ArrayFilterDefinition<BsonDocument> objectFilter = new BsonDocument("object.name", new BsonDocument("$eq", sModelName));
ArrayFilterDefinition<BsonDocument> configDocFilter = new BsonDocument("configdoc.config_id", new BsonDocument("$eq", iObjectId));

arrayFilters.AddRange(new[] { appFilter, objectFilter, configDocFilter });

var updateOptions = new UpdateOptions { ArrayFilters = arrayFilters };

var res = Col.UpdateOne(filter, update, updateOptions);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana saya bisa menjalankan perintah MongoDB dengan menanyakan koleksi $cmd khusus?

  2. Dapatkan jumlah elemen yang difilter dalam array dari $lookup bersama dengan seluruh dokumen

  3. mongodb geoNear vs near

  4. Memperbaiki Kesalahan Halaman di MongoDB

  5. Menyiapkan koneksi tunggal dengan node.js dan mongo