【发布时间】:2017-09-23 22:08:01
【问题描述】:
我是 Mongoose 的新手,几天来我一直在尝试解决这个问题,但我仍然遇到问题。
我的文档对象在下面。
"person" : [
{
"title" : "front-end developer",
"skills" : [
{
"name" : "js",
"project" : "1",
},
{
"name" : "CSS",
"project" : "5",
}
]
},
{
"title" : "software engineer",
"skills" : [
{
"name" : "Java",
"project" : "1",
},
{
"name" : "c++",
"project" : "5",
}
]
}
]
我想要完成的是返回所有具有person.title = software engineer AND person.skills.name = c++ 的文档。技能c++ 必须属于 software engineer 个人对象。所以当前端开发者有c++时返回文档并不理想。
这是我迄今为止尝试过的。该查询有效,但它返回满足任一条件而不是同时满足两个条件的文档。
var query = {
_id: { $nin: [userID] },
$and: [
{person: {
$elemMatch: {
name: {$regex: `^${titleName}$`, $options: "i"}
}
}},
{[`person.skills`]: {
$elemMatch: {
name: {$regex: `^${skillName}$`, $options: "i"}
}
}}
]
};
任何帮助将不胜感激。谢谢!
【问题讨论】: