当多语言存储在集合中时,如何使用Mongoose获取数据



我已经像一样在mongo数据库中保存了数据

{
"title": {
"ar": "arabic name",
"en": "english name"
},
"description": {
"ar": "ar-description",
"en": "arabic description"
},
"subCategories": [{ 
"title": {
"ar": "arabic name",
"en": "english name"
}],
}

预期输出

{
"title": "arabic name",
"description": "arabic description",
"subCategories": [{"title": "arabic name"}],
}

我如何才能根据语言(en,ar(查询到猫鼬给出这个结果。我正在使用mongose、nodejs和express。如果不能用猫鼬,那么还有其他解决方案吗?谢谢:(

最好的方法是存储unwinded文档

{
"title": {
"ar": "arabic name",
"en": "english name"
},
"description": {
"ar": "ar-description",
"en": "arabic description"
},
"subCategories": [{ 
"title": {
"ar": "arabic name",
"en": "english name"
}],
}

将成为

// ar doc
{
"lang": "ar",
"title": "Arabic name",
"description": "ar-description",
"subCategories": [{ 
"title": "arabic name"
}],
}
// en doc
{
"lang": "en",
"title": "English name",
"description": "en-description",
"subCategories": [{ 
"title": "english name"
}],
}

为了找到ar文档

Model.find({lang:'ar'})

会给你预期的结果。

最新更新