Tôi đang cố gắng để tạo ra một truy vấn mà tìm tất cả, mọi thứ lớn màu đỏ với một lớn hơn chi phí hơn 3.Làm cách nào để tự động áp dụng toán tử điều kiện cho trường bằng Trình điều khiển MongoDB-CSharp chính thức?
Truy vấn này có vẻ là những gì tôi sau:
{ "color" : "red", "size" : "large", "cost" : { "$gt" : 3.0 } }
Nhưng, tôi không thể tìm thấy một cách thanh lịch để tạo điều kiện chi phí bằng cách sử dụng trình điều khiển chính thức MongoDB CSharp. Đây là một cuộc tấn mà dường như để tạo ra các truy vấn:
QueryConditionList gt = Query.GT("cost", BsonDouble.Create(3));
QueryDocument query = new QueryDocument();
query.Add("color", "red");
query.Add("size", "large");
query.Add(gt.ToBsonDocument().Elements);
List<BsonDocument> results = events.Find(query).ToList();
Một cách khác để làm điều đó mà dường như để làm việc là như thế này:
QueryDocument query = new QueryDocument();
query.Add("color", "red");
query.Add("size", "large");
query.Add("cost", new BsonDocument("$gt", BsonDouble.Create(3)));
List<BsonDocument> results = events.Find(query).ToList();
Là một trong những cách tiếp cận một cách tốt để thực hiện điều này? Có cái nào khác không?
Tôi cần sử dụng các kỹ thuật cho phép tôi tạo động truy vấn và thêm các trường sẽ tham gia vào truy vấn. Tôi đã hy vọng tìm một cách để thêm một điều kiện thông qua query.Add() nhưng tôi không biết nếu đó là có thể.
Mọi trợ giúp đều được đánh giá cao.
Cảm ơn bạn. Thực tế là Query.And trả về một QueryComplete đã ném tôi đi. Tôi cứ suy nghĩ về cách bạn có thể xây dựng một biểu thức LINQ. Cảm ơn bạn đã chỉ ra rằng nó có một mảng và không chỉ là toán hạng. Về cơ bản tôi đã làm những gì bạn thêm vào với bản chỉnh sửa của mình và có vẻ như nó hoạt động rất tốt. – Vyrotek