如何使用Java客户端查询mongoDB中的多个字段

时间:2016-11-21 07:27:19

标签: mongodb mongodb-java

我想查询一个条件,即两个字段的字符串连接比给定值大,如下所示,但我不知道如何编写queryCondition。有人可以帮忙吗?

long t = 1479690653366;
String id = "5832499d63594c3b24030c19";

//There are _id and time fields in the document
DBCollection collection = ...
collection.find(<queryCondition>);

The logic of <queryCondition> is to find the documents whose concatenation of _time and _id column is larger than the concatenation of time and id, that is 14796906533665832499d63594c3b24030c19

1 个答案:

答案 0 :(得分:2)

我认为你不需要字符串连接。

您希望拥有&&CSV的文档以及拥有_time > 1479690653366的文档,但仅限于_time == 1479690653366

在这种情况下,您可以查询:

_id > 5832499d63594c3b24030c19

collection.find({ $or : [ _time : { $gt : 1479690653366}, { _time : "1479690653366", _id : { $gt : ObjectId("5832499d63594c3b24030c19") } } ]}); 语法,如:

Java