如何在mongodb和mongoose中存储不同语言的属性

时间:2016-08-12 10:12:35

标签: mongodb mongoose

这是我的架构:

var cvSchema = new Schema({
  name: {type: String, required: true},
  alias: {type: String, required: true, minlength: 6, maxlength: 6},
  profitCentre: {type:Number, min:1000, max:9999},
  city: String,
  company: String,
  profession: {
    type: Schema.ObjectId,
    ref: 'profession',
    required: true
  }, 
});

职业财产是一个参考。这个职业可以有一个价值,但有几种语言。有关于如何做到这一点的最佳做法吗?

我想出了两个选择:

var professionSchema = new Schema({
  values: [
    {
      lang: {type: String, enum: ['sv', 'en']},
      name: {type: String, required: true}
    }
  ]
});

选项二:(en = english,sv = swedish):

var professionSchema = new Schema({
      en: 'String',
      sv: 'String'
    });

第一个更通用,但我发现很难在其上运行简单的查询(填充等)。使用第二个查询运行查询更容易。这里有正确或错误的方式吗?

1 个答案:

答案 0 :(得分:0)

我没有看到其中任何一个是对还是错,并认为你应该使用最适合你想要完成的解决方案。

您甚至可以考虑查看this npm包以简化操作。