簡體   English   中英

MongoDb 一對多映射

[英]MongoDb one-to-many mapping

我試圖與 MongoDb 建立一對多的關系,但堅持加入兩個 collections。 我在下面做了一個例子,看看我現在是怎么做的。

// schools collection
{
  _id: ObjectId("5ef206d1d21c573718ae6eda")
  name: "Hogwarts School of Witchcraft and Wizardry"
}

// students collection
{
  _id: ObjectId("5efed5df8b28770c2cb344b9"),
  school_id: ObjectId("5ef206d1d21c573718ae6eda")
  firstName: "Harry"
  lastName: "Potter"
}

和 .net 項目中的 model 類:

public class School
{
    [BsonId]
    [BsonRepresentation(BsonType.ObjectId)]
    public string Id { get; set; }
    
    public string Name { get; set; }
    public List<Student> Students { get; set; }
}

public class Student
{
    [BsonId]
    [BsonRepresentation(BsonType.ObjectId)]
    public string Id { get; set; }
    
    [BsonRepresentation(BsonType.ObjectId)]
    [Required]
    public string School_id { get; set; }
    
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

我怎樣才能讓map的studentsschool object? 我嘗試了這些代碼,但它們都不起作用。

// 1st attempt
var q = _schools.Aggregate().Lookup<School, Student, School>(_students, school => school.Id, student 
=> student.school_id, a => a.Students);

// 2nd attempt
var q = from school in _schools.AsQueryable()
        join student in _students.AsQueryable() on school.Id equals student.school_id into students
        select new School()
        {
            Students = students
        };

var result = q.ToList();

我錯過了什么?

實際上這兩個代碼片段都有效,唯一的問題是我拼錯了數據庫中的school_id值並引用了一個不存在的School文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM