【问题标题】:Mongoose structure for multi language多语言的猫鼬结构
【发布时间】:2020-04-01 21:08:59
【问题描述】:

我很难有一个清晰的想法来构建我的模型以能够处理多种语言。 假设我们有一个架构用户

const UserSchema = new Schema({
  firstName: { 
    en: { ... },
    fr: { ... },
 }
})

现在假设用户在前端更改了应用程序的默认语言,我希望能够仅向用户返回与所选语言对应的结果。

例如:如果他选择 EN,我将只返回 EN 中的 firstName

  • 我应该如何处理?
  • 这个架构可以更好吗?
  • 假设我们有其他架构具有相同的流程如何为所有架构设置默认语言以根据所选语言选择相应的属性?
  • 我应该在哪里存储选择的语言?例如作为标题?

谢谢你们。

【问题讨论】:

  • 这也是实时项目的正确方法之一

标签: node.js mongoose


【解决方案1】:

你可以像这样制作你的模型

const UserSchema = new Schema({
   firstName: { 
    en: { ... },
    fr: { ... },
   }
   default_language: en
  })

当你想改变语言更新 user.default_language 如果您想使用该语言显示 first_name,您可以这样做(模式代码使用猫鼬)。

let userLanguage=User.findById(userid).select("default_language");
let user=User.findById(userid);
firstname=user.firstname.userLanguage.default_language;

【讨论】:

  • 您好,感谢您的解决方案,但我不禁想知道这是否真的是最适合未来的解决方案。至少在 Apollo Server 中没有所谓的“指令”吗?
猜你喜欢
  • 2021-09-21
  • 2018-06-23
  • 2014-08-16
  • 1970-01-01
  • 2014-07-08
  • 2016-03-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多