Tôi phải viết một truy vấn đơn giản MongoDB
bằng cách sử dụng java
nhưng không thể làm điều đó.Cách thực hiện truy vấn MongoDB này bằng java?
Các Mongo trông như thế này:
db.yourCollection.find({"$where" : "this.startDate < this.endDate"})
tôi phải viết các truy vấn trên bằng cách sử dụng lớp QueryBuilder
. Nhưng tôi không thể làm điều đó trong trình điều khiển MongoDB
java
.
BasicDBObject document = new BasicDBObject();
document.put("id", 1001);
document.put("intValue", 1200);
document.put("updateValue", 2100);
DBObject query = QueryBuilder.start("intValue").lessThan("updateValue").get();
DBCursor cursor = collection.find(query);
while (cursor.hasNext()) {
System.out.println("Result : -"+cursor.next());}
Mã trên không trả lại bất kỳ kết quả nào. Nhưng nếu thay đổi thành updateValue
thành 2100
, nó sẽ cho kết quả. Câu hỏi của tôi ở đây là lessThan
lấy đối tượng làm tham số đầu vào. Sau đó làm thế nào tôi có thể vượt qua trường tài liệu như một tham số đầu vào?
Trình tạo truy vấn ở trên không hoạt động. nếu "endDate" là một trường trong cùng một tài liệu. Nó làm việc nếu tôi đưa ra giá trị không đổi thay vì endDate trong QueryBuilder. Hơn nữa BasicDBObject không chấp nhận tên trường endDate trong tham số thứ hai thứ hai – zulu