MongoDB和i18n

时间:2014-10-20 15:03:42

标签: node.js mongodb mongoose

我想使用Mongoose ODM在MongoDB中建模国际化集合。它只需要以三种语言存储String(名称)。

您如何为该架构建模?我想过这样的事情:

    _id: ObjectID(...),
    name: {
        en: 'Ten',
        es: 'Diez',
        fr: 'Dix'
    }

有没有办法使用枚举来表示语言代码,而不是将它们硬编码到Mongoose Schema中?我还要感谢有关如何在MongoDB中实现集合国际化的一般提示。

更新

我将最终使用mongoose-i18n插件:https://github.com/elrolito/mongoose-i18n

2 个答案:

答案 0 :(得分:0)

也许可以帮助您。

在型号中:

first_name: {
    type: String,
    required: [true, "models.subscriber.required"]
},

您认为

      {{#each errors }}
      <p class="mb-0 ">{{ translate this}}</p>
      {{/each}}

在您的本地json文件中:

"models": {
    "subscriber": {
        "required": "The first name is required",
    }
}

答案 1 :(得分:-3)

您可以遵循以下架构:

_id: ObjectID(...),
    name:[ 
        'Ten',
        'Diez',
        'Dix'
    ]

使用这种模式优于你提到的模式的优点是查询会稍微容易一些,你可以通过引用数组中的位置来访问特定语言的字段。也可以更容易地添加更新的entires到阵列。唯一的缺点是必须遵循特定的顺序。