Java 使用spring boot在mongodb中按标题查找元素
这是我第一次使用Spring Boot,我是一个完全的初学者。我想查询mongodb以检查项目是否与输入对象的标题相同。按照我设置代码的方式,在查看其他解决方案时,我找不到一种简单的方法来执行此操作 我的代码: BookRepository.java(初始化MONGODB REPO) java(RESTAPI)Java 使用spring boot在mongodb中按标题查找元素,java,spring,mongodb,spring-boot,Java,Spring,Mongodb,Spring Boot,这是我第一次使用Spring Boot,我是一个完全的初学者。我想查询mongodb以检查项目是否与输入对象的标题相同。按照我设置代码的方式,在查看其他解决方案时,我找不到一种简单的方法来执行此操作 我的代码: BookRepository.java(初始化MONGODB REPO) java(RESTAPI) 向存储库添加existsbytle方法,如下所示。不需要实施 import org.springframework.data.mongodb.repository.MongoReposi
向存储库添加existsbytle方法,如下所示。不需要实施
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface BookRepository extends MongoRepository<Book,String>{
boolean existsByTitle(String title);
}
我还建议您简化getter的输出,因为它们应该只返回值,而不返回其他内容。如果您需要添加“标题是:”您可以稍后在其他地方添加:
public String getTitle() {
return title;
}
public String getCreator() {
return creator;
}
youtube和其他资源上有大量教程,您可以查看这些教程以更好地掌握如何使用mongodb进行spring引导。首先看看其中的一个,我保证你能很容易地做这样的事情
编辑:还有一件事。通常,您不会直接连接控制器和存储库,如果您查看教程,您很可能会看到此人使用中间“服务”层。
在您的情况下,您需要BookController->BookService->BookRepository
有了这个,你可以避免在你的控制器中有大量的逻辑,这些逻辑应该尽可能干净
理想情况下,BookController类如下所示:
@RestController
public class BookController {
@Autowired
public BookService bookService;
@PostMapping(value= "/createBook")
public String createBook( @RequestBody Book book){
return bookService.createBook(book);
}
//OTHER CONTROLLER METHODS
}
所有复杂的逻辑,如检查书名是否存在以及其他内容,现在都可以转到bookService.createBook()。别忘了也用@Service注释BookService
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface BookRepository extends MongoRepository<Book,String>{
boolean existsByTitle(String title);
}
@PostMapping(value= "/createBook")
public String createBook( @RequestBody Book book){
//what to do now to check if title exists in a document ?
boolean titleExists = bookRepo.existsByTitle(book.getTitle());
//do something with this information....
}
public String getTitle() {
return title;
}
public String getCreator() {
return creator;
}
@RestController
public class BookController {
@Autowired
public BookService bookService;
@PostMapping(value= "/createBook")
public String createBook( @RequestBody Book book){
return bookService.createBook(book);
}
//OTHER CONTROLLER METHODS
}