如何在Mongoose和MongoDB中搜索键值对

如何在Mongoose和MongoDB中搜索键值对,mongodb,mongoose,Mongodb,Mongoose,我正在创建一个MERN应用程序,允许用户在数据库中输入他们的编码知识水平 模式中有一个名为skills的值,允许这样做: skills: [{ skill: String, yearsExperience: String }] 这意味着在MongoDB数据库中,用户的技能如下所示: skills: [ {skill: 'React', yearsExperience: '3 years'}, {skill: 'HTML', yearsExperience: '5

我正在创建一个MERN应用程序,允许用户在数据库中输入他们的编码知识水平

模式中有一个名为skills的值,允许这样做:

skills: [{
    skill: String,
    yearsExperience: String
}]
这意味着在MongoDB数据库中,用户的技能如下所示:

skills: [
    {skill: 'React', yearsExperience: '3 years'},
    {skill: 'HTML', yearsExperience: '5 years'},
    {skill: 'JavaScript', yearsExperience: '5 years'},
    {skill: 'Git', yearsExperience: '3 years'},
    {skill: 'TypeScript', yearsExperience: '< 1 year'},
    {skill: 'C++', yearsExperience: '1 years'}
]
技能:[
{技能:“反应”,年经验:“3年”},
{skill:'HTML',yearsExperience:'5年'},
{skill:'JavaScript',yearsExperience:'5年'},
{技能:'Git',年经验:'3年'},
{skill:'TypeScript',yearsExperience:'<1年'},
{技能:'C++',年经验:'1年}
]

我正在创建一个管理面板,我希望能够查询每个用户的技能,以找到合适的匹配。因此,如果我想找到一个至少有2年的反应经历以及至少一年C++经验的人,这个查询将用包含满足这个要求的所有用户的JSON对象来响应。这个问题是我从来没有处理过这些保存到数据库中的动态对象,所以我不确定Mongoose是否有一个内置的方法来处理这个问题。任何建议都很好

因为多年的经验是一个你想要排序和筛选的指标,你真的不想把它存储为字符串。如果在您的控制下,您应该将其存储为一个数字,此时您可以使用类似的运算符执行非常简单的
find