在不使用 DBRef 的情况下映射集合(Spring 数据 MongoDB)

Mapping a Collection without using DBRef (Spring Data MongoDB)

我读了很多书,不鼓励在 Spring Data/MongoDB 中使用 DBRef 进行集合映射。那么,我如何实现一个映射来存储从 students 集合中的那些对象中获取的 ObjectId 数组?

假设我有以下 POJO 模型:

@Document (collection = "courses")
public class Course {

    @Id
    private String id;

    private String name;

    private List<Student> students = new LinkedList<Student>();

    //.. constructors, getters and setters ..
}

public interface CourseRepository extends MongoRepository<Course, String> { }

结果应该是这样的:

courses
{
    _id : ObjectId("foo"),
    _class: "model.Course",
    name: "MongoDB for Dummies",
    students: [ ObjectId("foo2"), ObjectId("foo3"), ... ]
}

而不是这个:

courses
{
    _id : ObjectId("foo"),
    _class: "model.Course",
    name: "MongoDB for Dummies",
    students: [ 
             DBRef("student", ObjectId("foo2")),
             DBRef("student", ObjectId("foo3"))
    ]
}

谢谢!

您可能想尝试显而易见的方法并将 students 更改为 List<ObjectId>。 ;)