我的 mongodb 中包含文件,但每次我使用其余控制器中的 findAll() 方法时,我都会返回一个空数组 [ ]
我是 mongodb 新手,这是我以前从未遇到过的事情。我使用 Mongo atlas 创建数据库并使用 Mongo Compas 连接到数据库。
帮忙?
@Data
@NoArgsConstructor
@AllArgsConstructor
@Document(collection = "movies")
public class Movie {
@Id
private ObjectId id;
private String imdbId;
private String title;
private String releaseDate;
private String trailerLink;
private String poster;
private List<String> backdrops;
private List<String> genres;
}
@RestController
@RequestMapping("/api/movies")
public class MovieController {
private final MovieService movieService;
public MovieController(MovieService movieService) {
this.movieService = movieService;
}
@GetMapping
public ResponseEntity<List<Movie>> getAllMovies(){
return new ResponseEntity<>(movieService.findAllMovies(), HttpStatus.OK);
}
}
@Repository
public interface MovieRepository extends MongoRepository<Movie, ObjectId> {
}
public interface MovieService {
List<Movie> findAllMovies();
}
@Service
public class MovieServiceImpl implements MovieService {
private final MovieRepository repository;
public MovieServiceImpl(MovieRepository repository) {
this.repository = repository;
}
public List<Movie> findAllMovies() {
return repository.findAll();
}
}
The application.properties
spring.data.mongodb.database=MoviesAPI
spring.data.mongodb.uri=mongodb+srv://user:[email protected]
server.port=9090
我尝试了我所知道的一切。我自己无法修复它,我需要帮助
我删除了整个数据库并创建了一个新数据库。我将所有内容命名为“电影”,从数据库名称到集合名称,还有@Document(collection =“movies”)。 这解决了问题,我不知道如何或为什么,但对于遇到同样问题的人,请尝试这个。
@Document(集合=“电影”)
如果您在数据库中将集合命名为其他名称,请在文档注释中使用相同的名称。 应该是这样的
@Document(集合 = Collection_Name)
这个修复对我有用。