Getting this error while accessing collection

There was an unexpected error (type=Internal Server Error, status=500).
Command failed with error 2 (BadValue): 'Field ‘locale’ is invalid in: { locale: “movies” }

1 Like

What command were you executing to result in this error?

I was running spring boot application

And what was the code you executed to throw this error? Do you have schema validation enabled, and if so is it set to strict?

What is the exact code you’re running, if you give more details it’s easier for someone to see what could be the issue.

MoviesApplication file:

package dev.harsh.movies;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

public class MoviesApplication {

	public static void main(String[] args) {, args);


MovieService file:

package dev.harsh.movies;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

public class MovieService {

    private MovieRepository movieRepository;
    public List<Movie> allMovies(){
        return movieRepository.findAll();

MovieRepository file:

package dev.harsh.movies;

import org.bson.codecs.ObjectIdCodec;
import org.springframework.stereotype.Repository;

public interface MovieRepository extends MongoRepository<Movie, ObjectIdCodec> {


package dev.harsh.movies;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.Mapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;

import java.util.List;

public class MovieController {

    private MovieService movieService;
    public ResponseEntity<List<Movie>> allMovies(){
        return new ResponseEntity<List<Movie>>(movieService.allMovies(), HttpStatus.OK);


package dev.harsh.movies;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;

import java.util.List;

@Document(collation = "movies")
public class Movie {
    private ObjectId id;
    private String  imdbId;
    private String title;
    private String releaseDate;
    private String trailerLink;
    private String poster;
    private List<String> genres;
    private List<String> backdrops;
    private List<Review> reviewIds;

Spring / Java is not my speciality but do the documents in the collection have the locale field but the class definition it’s trying to map the data to does not?

1 Like

Use @Document(collection = “movies”) instead @Document(collation = “movies”)
I got the same :slight_smile:


Good spot, I missed that!

Brother, you are a lifesaver, I am new to everything, and I have no clue of what I am doing. I cannot believe there was a person with the exact specific problem as me and someone else who figured it out too. Thanks so much for the solution, really appreciate it.

1 Like

Take it easy bro :slight_smile: :slight_smile:

Bro Thanks a million for your amazing support

1 Like

thanks a lot, you save me

1 Like

Dammned to see so many folks getting same problem :slightly_smiling_face: Yall doing freeCodeCamp course too? :joy: :joy:

Legend !!!

Thank you for Correcting…

thank you for you solutions. you can explain differences for collaction and collection