【发布时间】:2020-11-21 22:44:39
【问题描述】:
像这样“本地化”数据:
{
"cs": [
{
"cID": "00001",
"title": {
"en": "title en1",
"de": "title de1"
},
"desc": {
"en": "desc en1",
"de": "desc de1"
},
"startDate": 20210801,
"endDate": 20210809,
"numDays": 8
},
{
"cID": "00002",
"title": {
"en": "title en2",
"de": "title de2"
},
"desc": {
"en": "desc en2",
"de": "desc de2"
},
"startDate": 20210701,
"endDate": 20210715,
"numDays": 14
}
]
}
将用户区域设置(作为参数传递给查询)考虑在内的最佳查询方式是什么?例如,如果传递了“en”,则查询应该为“cID”返回这个:“00001”:
{
"cID": "00001",
"title": "title en1",
"desc": "desc en1",
"startDate": 20210801,
"endDate": 20210809,
"numDays": 8
}
理想情况下,查询应该是“通用的”,而不是专门过滤“标题”和“描述”对象。
我知道:
db.cs.find({
"cID": "00001"
},
{
"_id": 0,
"cID": 1,
"title": "$title.en",
"desc": "$desc.en",
"startDate": 1,
"endDate": 1,
"numDays": 1
})
会给我:
[
{
"cID": "00001",
"desc": "desc en1",
"endDate": 2.0210809e+07,
"numDays": 8,
"startDate": 2.0210801e+07,
"title": "title en1"
}
]
但是在不同的查询中使用许多语言环境和不同的数据模型来处理它会很棘手。
【问题讨论】:
-
你在使用
mongooseos 类似的东西吗?您使用哪种语言?还是只是一个mongo查询? -
这是一个 node.js / express 应用程序。我没有使用猫鼬。我正在使用 MongoDB Node.JS 驱动程序。
标签: node.js mongodb localization aggregation-framework