MongoDB - 将文档引用作为嵌套文档返回

时间:2014-08-04 08:08:24

标签: c# mongodb nested

想象一下这个结构:

收集公司:

{ 
  "company" : "foo",
  "city" : "1234"
}

{ 
  "company" : "bar",
  "city" : "1234"
}

收集城市:

{
  "_id" : "1234",
  "cityname" : "Berlin",
  "zipcode" : "09123"
}

现在我想在查询company =“foo”时得到结果:

{ 
  "company" : "foo",
  "city" : {
          "_id" : "1234",
          "cityname" : "Berlin",
          "zipcode" : "09123"
           }
}

如何从C#驱动程序查询?我的结果结构是C#类,我希望它有强类型。

像这样:

MongoCollection<Company> mc = mongodb.GetCollection<Company>("companies")

Class公司看起来像:

public class Company {
     public string company {get;set;}
     public City city {get;set;}
}

你应该明白这个想法。 Mongo ducomentation对此并没有太多说明。

1 个答案:

答案 0 :(得分:0)

您经常通过引用询问城市数据,嵌入此文档可以更快地进行查询。

重新构建文档架构并将城市(地址)文档嵌入公司文档中。

{
    company : "Deutsche Bank",
    address : {
        street : "Müllerstraße",
        number : "34a",
        zipcode : "13353",
        city : "Berlin"
    }
}

如果由于任何业务逻辑依赖于公司文档而没有其他选项,则可以选择创建聚合查询并将新文档作为结果投影。

[附加信息]
您必须运行额外的查询以获取引用的文档,预先处理每个公司并嵌入城市信息。