【发布时间】:2019-03-10 06:20:31
【问题描述】:
下面是我的用户 MongoDB 文档的图像。我有一个技能数组,其中包含具有以下结构的对象。
{
name: String,
points: Number,
skill: Schema.Types.ObjectId
}
这是一个实际用户文档的截图,你可以看到名为html的技能
现在我想创建一个搜索查询,该查询将匹配技能数组中这些对象之一的name 属性。例如,如果我的输入是 htm,它将与具有名为 html 的技能的用户匹配。我尝试了下面的方法,但它似乎不起作用。有人可以建议我如何成功地做到这一点吗?
const createSkillsQuery = (user, input) => User.find({
$and: [
{ skills: { name: { $regex: input, $options: 'i' } } },
{ _workspace: user._workspace }
]
}).select('profile_pic full_name email created_date');
【问题讨论】:
-
这里不需要
$and。这是隐含的。 -
试试
"skills.name": { $regex... -
好的,塞尔吉奥,我试试
-
成功了!非常感谢!
-
作为答案发布,这样我可以赚取一些互联网积分:)
标签: javascript node.js mongodb mongoose