Java Spring数据mongo GridFsOperation.findOne不';我找不到第一个
我正在使用SpringDataMongo版本1.10.18和Java8。我不理解我在Java Spring数据mongo GridFsOperation.findOne不';我找不到第一个,java,spring,spring-data-mongodb,gridfs,Java,Spring,Spring Data Mongodb,Gridfs,我正在使用SpringDataMongo版本1.10.18和Java8。我不理解我在GridFsOperations.findOne方法中看到的行为 Query maxAccountSetVersionQuery = new Query().addCriteria(GridFsCriteria.whereMetaData("tenantId").is(tenantId)) .addCriteria(GridFsCriteria.whereMetaData("contextId")
GridFsOperations.findOne
方法中看到的行为
Query maxAccountSetVersionQuery = new Query().addCriteria(GridFsCriteria.whereMetaData("tenantId").is(tenantId))
.addCriteria(GridFsCriteria.whereMetaData("contextId").is(businessContextId))
.addCriteria(GridFsCriteria.whereMetaData("collection").is("genericAuthorizationAccount"))
.with(new Sort(Sort.Direction.DESC, "metadata.accountSetVersion"));
final GridFSDBFile findOneResult = gridOperations.findOne(maxAccountSetVersionQuery);
final List<GridFSDBFile> gridFSDBFiles = gridOperations.find(maxAccountSetVersionQuery);
final GridFSDBFile firstInListResult = gridFSDBFiles.get(0);
final String output = String.format("findOneResult: %s\nfirstInListResult: %s",
findOneResult.getMetaData().get("accountSetVersion"),
firstInListResult.getMetaData().get("accountSetVersion"));
System.out.println(output);
这里需要说明的是,我期望的答案是4,这意味着firstInListResult
引用的是预期的文档
因此,有两个问题:
findOneResult
和firstInListResult
不引用同一文档中的一个?或者换一种方式问,为什么findOne
找不到第一个文档事实证明,这是SpringDataMongoDB的GridFsTemplate实现中的一个bug。令人惊讶的是,在我最初提出这个问题后,仅在4天前就创建了一个带有修复的pull请求
findOneResult: 1
firstInListResult: 4