MongoDB C#对其他集合的引用

时间:2014-01-23 19:15:46

标签: c# mongodb mongodb-.net-driver mongorepository nosql

我正在使用MongoRepository,并希望在两个不同的集合之间创建引用。

例如,表单可以包含指向表单的链接。它将表示为:

public class Form : IEntity{
     public string Id {get;set;}
     public string Report {get;set;} // represents the string form of the ObjectId
}

public class Report : IEntity{
     public string Id {get;set;}
}

我想获取带有报告的表单文档,如:

static MongoRepository<Form> forms = new MongoRepository<Form>();
var form = forms.Single(f => f.id == "1");

,结果如下:

{
    "id": "1",
    "Report": {
        "id": "2"
    }
}

这可能在这个框架内吗?是否可以只使用C#驱动程序库?

1 个答案:

答案 0 :(得分:2)

MongoRepository了解不多,但在官方驱动程序中你可以:

  1. 有一个文档,其中包含另一个集合中的不同文档的ID(基本上是外键),但这意味着您必须执行“在客户端加入”,选择第一个项目并使用ID选择另一个项目
  2. 您可以将第二项(本案例中的报告)完全存储在第一项内。这意味着它是一个内部文档,与其父级位于同一个集合中,您可以在一次调用中同时选择它们。
  3. MongoRepository可能不会增加太多。它只能将你的逻辑抽象出来......