mongodb中一对一和多对多的entites表示

时间:2016-07-25 16:16:43

标签: mongodb mongodb-query

所以我即将通过实体框架使用sqlserver,然后我收到一封电子邮件,说azure刚刚再次提高了Azure SQL Elastic数据库的价格!任何方式我都会使用mongodb,我需要帮助将这个流畅的api翻译成mongo文档?

public CourseMappings()
                {
                    HasMany<User>(s => s.Student)
                        .WithMany(c => c.Course);
                }

 public AddressMappings()
            {

                HasRequired(c => c.Student)
                .WithRequiredDependent(u => u.Address);
            }


public StudentMapping()
            {

                HasRequired(c => c.Address)
                .WithRequiredPrincipal(u => u.Student);

            }

有三张桌子,学生,地址和课程,我如何在Mongodb中建模?我知道地址将嵌入学生中,我已经找到了1:1的关系。问题是可以在一个文件(一个例子)中完成,还是这个课程是一个单独的文件,带有StudentId,可以与学生建立多对多的关系?

1 个答案:

答案 0 :(得分:0)

MongoDB中的数据模型非常依赖于应用程序的“查询访问模式”。据我了解,您的应用程序通过学生ID或学生数据访问数据。我建议只有一个系列。集合模式数据模型如下所示: -

{
    "_id" : ObjectId("57971c2b4895ddf87c8747ea"),
    "studentid" : 1,
    "studentname" : "name",
    "address" : {
        "name" : "street name",
        "addressline1" : "line 1",
        "addressline2" : "line 2",
        "post code" : "GRUHFYN"
    },
    "courses" : [ 
        {
            "courseid" : 1,
            "coursename" : "science"
        }, 
        {
            "courseid" : 2,
            "coursename" : "english"
        }, 
        {
            "courseid" : 3,
            "coursename" : "Maths"
        }
    ]
}

Student Model with data types