如果您想找到#1000
有价值的订单参考,请尝试以下操作:
Sale s = collection.findOne("{orderRef:#}", "#1000").as(Sale.class);
该#
字符恰好是变量值的占位符。Jongo 有一个内置的模板系统,它会为你做基本的查询清理。该模板系统将扫描查询字符串中的#
字符,并将其替换为您放置在它们后面的参数的净化版本。由于在您的情况下#
是字段值,而不是字段名称,因此您不需要任何特殊处理。这是一个关于它如何工作的更扩展的示例。
public class JongoTest {
public static void main(String[] args) throws Exception {
// initialize mongo
MongoClient mongoClient = new MongoClient("localhost", 27017);
DB db = mongoClient.getDB("test");
Jongo jongo = new Jongo(db);
// create a simple object here
Map<String, Object> pojo = new LinkedHashMap<>();
pojo.put("artist", "The Chainsmokers");
pojo.put("title", "#selfie");
pojo.put("timestamp", System.currentTimeMillis());
// save the result in the system
jongo.getCollection("test").save(pojo);
// perform query and print the result
Iterable<Object> iterator = jongo.getCollection("test").find("{title:#}", "#selfie").as(Object.class);
for (Object dbResult : iterator) {
System.err.println(dbResult.toString());
}
}
}
希望这可以帮助。