Spring + MongoDB 利用MongoTemplate查询的问题


db中有符合该条件的数据。


 Query query=new Query(
    Criteria.where("AAA").is(XXobj.getAAA()).
    orOperator(Criteria.where("BBB").is(XXobj.getBBB()))
    );

find()方法:


 List<XXObject> result = mongoTemplate.find(query, XXObject.class);
if(result!=null && !result.isEmpty()){
    return result.get(0);
}

findOne()方法:


 XXObject obj = mongoTemplate.findOne(query, XXObject.class);
if(obj!=null){
    return obj;
}

问:
为什么同样的条件,这两个查询的结果却不同?(我遇到的问题是findOne查询结果为空)。

附:
官方文档对findOne和find的说明:
findOne Map the results of an ad-hoc query on the collection to a single instance of an object of the specified type.

find Map the results of an ad-hoc query on the collection to a List of the specified type.

看起来没什么区别啊。

spring mongodb

本人是潜水员 10 years, 2 months ago

Your Answer