我有一个Java代码,需要经常引用mongo集合,这需要很多时间。我在堆中没有大对象没有任何问题。因此,基本上,我想将所有这些集合复制到相关对象中的java中,以便在搜索字段时可以参考它。
1)是否可以一次性遍历该集合中的所有文档到JsonArray / List中?
2)我可以像在进行查询一样在JSONArray上进行聚合搜索以找到相关文档,然后执行查找操作吗?
答案 0 :(得分:0)
1)是否可以一次性遍历该集合中的所有文档到JsonArray / List中?
A: 如果要查找JavaDocumentName的所有文档(java中的任何集合名称)
List<JavaDocumentName> listRes = mongoOperation.findAll(JavaDocumentName.class);
2)我可以像在进行查询一样在JSONArray上进行聚合搜索以找到相关文档,然后执行查找操作吗?
Query searchQuery = new Query(Criteria.where("name").is("Parth"));
List<JavaDocumentName> listRes = mongoOperations.find(searchQuery, JavaDocumentName.class);
示例:
@Document(collection =“ Customer”) 公共类客户{
}
列表listRes = mongoOperation.findAll(Customer.class);
如果您想要JSON,则控制器方法将在最后为您生成JSON,如下所示,
@RequestMapping(value = "/customers", method = RequestMethod.GETG,
produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(value = HttpStatus.OK)
public Customer getCustomer{
}
============================
另一种方法
您可以使用CollectionCallback直接处理返回的DBObject,只需将其toString()即可:
template.execute("jvmInfo", new CollectionCallback<String>() {
String doInCollection(DBCollection collection) {
DBCursor cursor = collection.find(query)
return cursor.next().toString()
}
}
String result = mongoTemplate.findOne(basicQuery, String.class, "jvmInfo");