我想查询一个条件,即两个字段的字符串连接比给定值大,如下所示,但我不知道如何编写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
答案 0 :(得分:2)
我认为你不需要字符串连接。
您希望拥有&&CSV
的文档以及拥有_time > 1479690653366
的文档,但仅限于_time == 1479690653366
。
在这种情况下,您可以查询:
_id > 5832499d63594c3b24030c19
或collection.find({ $or : [
_time : { $gt : 1479690653366},
{ _time : "1479690653366", _id : { $gt : ObjectId("5832499d63594c3b24030c19") } }
]});
语法,如:
Java