Câu trả lời đã chỉnh sửa:
Tôi nhận ra rằng đã có một cách chính thức để lấy truy vấn Mongo từ truy vấn LINQ (lẽ ra tôi phải biết!). Bạn phải downcast IQueryable
var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e;
var mongoQuery = ((MongoQueryable<Entity>)linqQuery).GetMongoQuery();
Câu trả lời ban đầu:
Hiện tại, không có cách nào được hỗ trợ chính thức để làm điều đó, nhưng trong tương lai gần, chúng tôi dự định sẽ giúp bạn dễ dàng tìm ra truy vấn MongoDB mà truy vấn LINQ đã được ánh xạ tới.
Trong ngắn hạn, bạn có thể sử dụng các phương pháp nội bộ không có tài liệu sau đây để tìm hiểu truy vấn MongoDB mà truy vấn LINQ được ánh xạ tới:
var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e;
var translatedQuery = (SelectQuery)MongoQueryTranslator.Translate(linqQuery);
var mongoQuery = translatedQuery.BuildQuery();
Nhưng tại một số thời điểm, bạn có thể cần phải chuyển từ các phương thức không có tài liệu này sang các phương thức được hỗ trợ chính thức (các phương thức không có tài liệu có thể thay đổi hoặc được đổi tên trong tương lai).