无法将Mongo BSON映射/绑定到不同形状的C#类

时间:2014-05-26 05:40:04

标签: c# sql mongodb deserialization bson

我正在试验C# driver for MongoDB,但文档不是很好IMO。

我的文档结构类似于:

{
  _id: 929384
  person: {
   name: 'Joe'
   contact: {
     phones: ["234", "567"],
     emails: ["blah@blah.com"]
  meta-data: .... // (I do not want this in my class)
  address: ....etc

我认为有很多C#迷你类来反映BSON结构,所以像这样的类很好

public class Person
{
  public string Id {get; set;}
  public string Name {get; set;}
  public string[] phones {get; set;}
  etc...
}

换句话说,它只是更加平坦,没有太多不必要的领域。

我可以想到两种方法:

  1. 查询返回具有聚合等的新结构的NoSQL存储过程的等效项。
  2. 更改驱动程序绑定的方式
  3. 研究第一个选项我发现了很多关于map/reduce的内容,它似乎非常适合分组和聚合数据,但我没有找到看起来像SQL存储过程的东西 - 过滤/更改列等。

    经过很长时间后,我发现第二种方式称为Deserialization。我试着查看文档,但IMO在解释时并没有做得最好。

    我需要能够映射person.contact.phones -> Person.Phones,我不知道为什么它应该如此复杂。

    我不是在寻找任何人为我做这项工作,这只是一个人为的例子。我只是想知道两个选项中哪一个更正确(或者是第三个)以及如何做。

0 个答案:

没有答案