Java Spring boot 在 MongoDB 的 get 方法上返回一个空数组

问题描述 投票:0回答:2

我的 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

我尝试了我所知道的一切。我自己无法修复它,我需要帮助

java mongodb spring-boot
2个回答
0
投票

我删除了整个数据库并创建了一个新数据库。我将所有内容命名为“电影”,从数据库名称到集合名称,还有@Document(collection =“movies”)。 这解决了问题,我不知道如何或为什么,但对于遇到同样问题的人,请尝试这个。


0
投票

@Document(集合=“电影”)

如果您在数据库中将集合命名为其他名称,请在文档注释中使用相同的名称。 应该是这样的

@Document(集合 = Collection_Name)

这个修复对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.