【发布时间】:2020-10-30 22:09:36
【问题描述】:
假设我有一个 user 的 mongoSchema,具有以下字段
googleId: String,
name: String,
Language : [{}],
用户最初可以在他们的个人资料页面上指定一组语言集 [最多 5 个]。
例如,用户可以有两种语言设置如下:
语言:
[main: {name: English, code: ko}, secondary: [{name:Japanese, code: jp}, {name:Chinese, code: en}]],
[main: {name: Korean, code: ko}, secondary: [{name:Japanese, code: jp}, {name:English, code: en}]
根据这些信息,我只想呈现符合以下偏好的帖子。
例如用 English 到 Japanese、English 到 Chinese 的帖子(从第一个语言集开始)
以及用韩语到日语、韩语到英语的帖子(来自第二语言集)
我的帖子架构有
postName: String
original: {},
target: {},
例如,
postName: 'Korean to Japanese Post'
original: {name: Korean, code: ko}
target: {name: Japanese, code jp}
我应该在大括号内放什么来获取指定语言集的帖子
const prefLang = req.user.Language
const post = await Post.find({ some query using prefLang to check over matching original and target })
res.send(translations)
【问题讨论】:
-
(1.) 字段
Language的实际架构是否在您的代码中定义?因为main: [Object]表示对象数组,[Array]表示数组数组。 (2.) 另外,在您的示例中,secondary应该有多个对象,对吧?目前您有一个带有重复键的对象。 (3.) 你的帖子架构有原始和目标,但你没有提到user.original和user.target那么req.user.original和req.user.target是什么?不应该是user.Language吗? -
1.抱歉,我打印了 console.log。在模式中,它被定义为 Language: [{}] 2. 是的,它应该是多个 [{name: Japanese, code:jp}, {name:Chinese, code: ch}] 3) 我应该只有 const prefLanguage = req .user.Language。抱歉,我将编辑此信息
标签: node.js mongodb mongoose mongodb-query mern