Chà, thành thật mà viết các truy vấn trong C # thì hơi phức tạp nhưng bạn luôn có thể chơi một mẹo nhỏ.
var bsonQuery = "{'Details.a':{$elemMatch:{$elemMatch:{DeviceName : /.*Name0.*/}}}}";
var filter = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(bsonQuery);
var result = col.FindSync (filter).ToList();
Tôi đang giải mã hóa các truy vấn MongoDB thuần túy vào một BsonDocument, đổi lại tôi sẽ chuyển đến FindAsync dưới dạng bộ lọc.
Cuối cùng, bạn sẽ có kết quả mong muốn trong kết quả thay đổi.
Lưu ý:Tôi giả sử kết nối MongoDB đã được thiết lập và biến
col
giữ tham chiếu đến bộ sưu tập MongoDB.
CHỈNH SỬA:Vui lòng xem liên kết sau https://groups.google.com/forum/#!topic/mongodb-csharp/0dcoVlbFR2A. Bây giờ nó đã được xác nhận rằng trình điều khiển C # không hỗ trợ bộ lọc không tên vì vậy viết truy vấn ở trên bằng cách sử dụng Buidlers<BsonDocument>.Filter
tại thời điểm này không được hỗ trợ.
Tóm lại, bạn chỉ còn một lựa chọn duy nhất đó là truy vấn như tôi đã đề cập ở trên trong giải pháp của mình.