mongodb-reactive Query by condition using Repository no data,springboot-version-2.7.0
示例:
@Repository
public interface UsersRepository extends ReactiveMongoRepository
/**
* Query user information by user name
* @param username
* @return
*/
Mono<Users> findByUsername(String username);
}
Mono
log: o.s.d.m.r.query.MongoQueryCreator : Created query Query: { "username" : "\"dc2020\""}, Fields: {}, Sort: {}
reasons may be "\"dc2020\"" one more \,cause no data to be found,reuslt==null
I tried the following query and got the solution.
@RequiredArgsConstructor @Service public class UsersServiceImpl implements UsersService {
private final ReactiveMongoTemplate reactiveMongoTemplate;
@Override
public Mono<Users> findByUsername(String username) {
return reactiveMongoTemplate.findOne(Query.query(new CriteriaDefinition() {
@Override
public Document getCriteriaObject() {
Document document = new Document();
document.put("username", username);
return document;
}
@Override
public String getKey() {
return null;
}
}), Users.class);
}
}
log: o.s.d.m.core.ReactiveMongoTemplate : findOne using query: { "username" : "dc2020"} fields: {} in db.collection: dc.user
Comment From: bclozel
Duplicates #31200 Please avoid creating duplicate issues, your first issue already has been answered.