想象一下这个结构:
收集公司:
{
"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对此并没有太多说明。
答案 0 :(得分:0)
您经常通过引用询问城市数据,嵌入此文档可以更快地进行查询。
重新构建文档架构并将城市(地址)文档嵌入公司文档中。
{ company : "Deutsche Bank", address : { street : "Müllerstraße", number : "34a", zipcode : "13353", city : "Berlin" } }
如果由于任何业务逻辑依赖于公司文档而没有其他选项,则可以选择创建聚合查询并将新文档作为结果投影。
[附加信息]
您必须运行额外的查询以获取引用的文档,预先处理每个公司并嵌入城市信息。