Pertama, Anda perlu menjalankan perintah ini di MongoDB Anda untuk menerapkan fitur baru versi 3.6.1 db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )
Berikut adalah kode yang Anda butuhkan untuk pembaruan itu:
var filter = Builders<YOUR_CLASS>.Filter.Eq("_id", new ObjectId("5a55775cbd12982cc063c71a"));
var update = Builders<YOUR_CLASS>.Update.Set("Cartons.$[i].Skus.$[j].ShippedQuantity", 50);
var arrayFilters = new List<ArrayFilterDefinition>
{
new BsonDocumentArrayFilterDefinition<Setup>(new BsonDocument("i._id", new ObjectId("5a5575bcbd12982cc063b718"))),
new BsonDocumentArrayFilterDefinition<Setup>(new BsonDocument("j._ID", new ObjectId("5a5575bcbd12982cc063b719")))
};
var updateOptions = new UpdateOptions { ArrayFilters = arrayFilters };
var (updated, errorMessage) = await UpdateOneAsync(filter, update, updateOptions);
Selain itu, Anda dapat menjalankan setel pengaturan ini di MongoDB Anda untuk melihat kueri akhir Anda dan menjalankannya secara manual di RoboMongo atau Studio 3T untuk men-debugnya:
db.setProfilingLevel(2) -> to view query logs under C:\data\log\mongod.log
db.setLogLevel(5) -> to view query logs under C:\data\log\mongod.log
cari kueri "PERBARUI" di file log. Setelah itu, Anda dapat mengatur ulang pengaturan log kembali ke 0
db.setProfilingLevel(0)
db.setLogLevel(0)
Saya memiliki masalah yang sama dan menanyakan pertanyaan yang sama. Lihat ini.