具有对象数组属性的Mongodb文档:如何匹配此数组的属性?

问题描述 投票:0回答:1

下面是我的用户MongoDB文档的图像。我有一个技能数组,其中包含具有以下结构的对象。

{
name: String,
points: Number,
skill: Schema.Types.ObjectId
}

这是实际用户文档的屏幕截图,您可以看到名称为html的技能

enter image description here

现在我想创建一个匹配技能数组中这些对象的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');
javascript node.js mongodb mongoose
1个回答
1
投票

你需要在这里使用dot notation

"skills.name": { $regex: input, $options: 'i' }
© www.soinside.com 2019 - 2024. All rights reserved.