如何使用MongoDB进行i18n操作?

时间:2017-05-22 10:05:06

标签: mongodb spring-boot internationalization

我正在使用sprint boot编写服务。对于持久层,我使用MongoDB。在我的服务中有一些i18n案例,但我不打算使用Mongoid。我应该像其他数据库一样设计表吗?或者是否有使用MongoDB进行i18n的最佳实践?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以将实际值放在文档内的数组中。这样的事情:

{
"_id" : "some id",
"defaultValue" : {
    "_id" : "ENG",
    "v" : "English Value"
},
"values" : [ 
    {
        "_id" : "ENG",
        "v" : "English Value"            
    }, 
    {
        "_id" : "RUS",
        "v" : "Russian Value"
    }
]

}

获取值时,您可以使用文档ID和值id进行查询,以获得所需的语言值。如果不存在所需的语言,您可以获得默认值。

db.yourDocument.find({"_id": "document id", "values._id": "ENG"}, {"values.$": 1})

如果查询返回没有元素检查默认值:

db.yourDocument.find({"_id": "document id"}, {"defaultValue": 1})