带有Spring数据的MongoDB-来自驱动程序的重复查询

带有Spring数据的MongoDB-来自驱动程序的重复查询,mongodb,spring-data,spring-data-mongodb,Mongodb,Spring Data,Spring Data Mongodb,在执行简单查询时,我有一个重复的查询。文件: SomeClass.java: @Document(collection = "someCollection") public class SomeClass { private String _id; private String someField; //... } SomeClassRepository.java: @Repository public interface SomeClassRepository e

在执行简单查询时,我有一个重复的查询。文件:

SomeClass.java:

@Document(collection = "someCollection")
public class SomeClass {

    private String _id;
    private String someField;

    //...
}
SomeClassRepository.java:

@Repository
public interface SomeClassRepository extends MongoRepository<SomeClass, String> {
}
application.properties:

logging.level.org.springframework.data.mongodb.core.MongoTemplate=DEBUG
日志文件:

14:14:46.514 [qtp1658534033-19] DEBUG o.s.data.mongodb.core.MongoTemplate - findOne using query: { "_id" : "40c23743-afdb-45ca-9231-c467f8e8b320"} fields: null for class: class com.somepackage.SomeClass in collection: someCollection
14:14:46.534 [qtp1658534033-19] DEBUG o.s.data.mongodb.core.MongoTemplate - findOne using query: { "_id" : "40c23743-afdb-45ca-9231-c467f8e8b320"} in db.collection: someDatabase.someCollection
我还试图:

1将@Id注释与名为someId的字段一起使用 2将@Id注释与名为Id的字段一起使用 3使用名为id的字段,不带@id注释

不幸的是,我对数据库总是有两个查询

有人知道如何执行单个查询吗


谢谢

它是唯一一个发送到数据库的查询。您的日志消息来自两个不同的地方

第一名:doFindOne方法-;第二名: FindOneCallback类-

您还可以通过查看数据库日志来确认日志。更多信息

14:14:46.514 [qtp1658534033-19] DEBUG o.s.data.mongodb.core.MongoTemplate - findOne using query: { "_id" : "40c23743-afdb-45ca-9231-c467f8e8b320"} fields: null for class: class com.somepackage.SomeClass in collection: someCollection
14:14:46.534 [qtp1658534033-19] DEBUG o.s.data.mongodb.core.MongoTemplate - findOne using query: { "_id" : "40c23743-afdb-45ca-9231-c467f8e8b320"} in db.collection: someDatabase.someCollection