Trước tiên, bạn cần chạy lệnh này trong MongoDB của mình để áp dụng các tính năng mới của phiên bản 3.6.1 db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )
Đây là mã bạn cần cho bản cập nhật đó:
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);
Ngoài ra, bạn có thể chạy thiết lập các cài đặt này trong MongoDB của mình để xem xét các truy vấn cuối cùng của bạn và chạy chúng theo cách thủ công trong RoboMongo hoặc Studio 3T để gỡ lỗi chúng:
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
tìm truy vấn "CẬP NHẬT" trong tệp nhật ký. Sau đó, bạn có thể đặt lại cài đặt nhật ký về 0
db.setProfilingLevel(0)
db.setLogLevel(0)
Tôi đã gặp vấn đề tương tự và đã hỏi câu hỏi tương tự Tại đây. Hãy xem nó.