C# mongodbc驱动的本地化模式

C# mongodbc驱动的本地化模式,c#,.net,mongodb,mongodb-.net-driver,nosql,C#,.net,Mongodb,Mongodb .net Driver,Nosql,我最近开始使用mongodb c驱动程序。我需要知道一种模式来定位存储中的数据。到目前为止,我发现了如下模式: { _id: "id", description: [{ lan: "en-US", description: "name_in_english" }, { lan: "zh-TW", description: "name_in_traditional_chinese" }] } 这是一个理性的选择吗?如何编写查询以仅为给定语言选择一个

我最近开始使用mongodb c驱动程序。我需要知道一种模式来定位存储中的数据。到目前为止,我发现了如下模式:

{
  _id: "id",
  description: [{
    lan: "en-US",
    description: "name_in_english"
  }, {
    lan: "zh-TW",
    description: "name_in_traditional_chinese"
  }]
}

这是一个理性的选择吗?如何编写查询以仅为给定语言选择一个描述对,以避免加载所有语言?

我将选择稍微不同的结构;区域代码可以用于.NET中更紧凑的类似字典的结构。您可以简单地从Dictionary继承,因此您将自动使用默认的Dictionary序列化程序

我在以前的Pactas公司写过类似的东西,代码是开源的。这不是作为一级公民,而是作为一个嵌入式属性,它将序列化为以下内容:

{
  "foo" : "bar",
  "myLocalizableString" : { 
      "_c" : "default", 
      "en" : "English (fallback)", 
      "en-US" : "American English", ... }
}
关于流量,我会选择读取所有数据,就像在客户机中进行语言过滤一样——如果数据变化不大且不是很大,这比调用数据库要好得多,但这当然取决于用例。但是,如果您有大量的文字和大量的收藏,我可能会颠倒顺序,将每个翻译存储为一个单独的对象。

这可以为您提供一些指导。