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: wilkinsona
Unfortunately, I don't speak Chinese. Using Google translate, you appear to be asking about Spring Data MongoDB and how it creates queries. Spring Data MongoDB is managed as a separate project. Please see the Getting Help section of their README to learn how to get help with Spring Data MongoDB.
Comment From: DengChen2020
mongodb-reactive 使用Repository 无数据条件查询,springboot-version-2.7.0
译文: @repository 公共接口 UsersRepository 扩展 ReactiveMongoRepository
{
/** * Query user information by user name * @param username * @return */ Mono<Users> findByUsername(String username);}
Mono usersMono = usersRepository.findByUsername(username);
日志: osdmrquery.MongoQueryCreator : Created query Query: { "username" : "\"dc2020\""}, Fields: {}, Sort: {}
reasons may be "\"dc2020\"" one more \,cause no data to be found,reuslt==null我尝试了以下查询并得到了解决方案。
@RequiredArgsConstructor @service 公共类 UsersServiceImpl 实现 UsersService {
``` private final ReactiveMongoTemplate reactiveMongoTemplate;
@Override public Mono
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);} ```
}
日志: osdmcore.ReactiveMongoTemplate : findOne using query: { "username" : "dc2020"} fields: {} in db.collection: dc.user
不幸的是,我不会说中文。使用 Google 翻译,您似乎在询问 Spring Data MongoDB 以及它如何创建查询。Spring Data MongoDB 作为一个单独的项目进行管理。请参阅他们的 README 的获取帮助部分以了解如何获得有关 Spring Data MongoDB 的帮助。
already edited