如何在mongoose中仅筛选与请求相对应的子文档
我在mongodb中有两个级别的分层文档。 集合名称称为book,其子文档为author和author,如下所示:如何在mongoose中仅筛选与请求相对应的子文档,mongoose,Mongoose,我在mongodb中有两个级别的分层文档。 集合名称称为book,其子文档为author和author,如下所示: const bookSchema = new mongoose.Schema({ name: String, authors: [{ authorName : String, diplomes :[{ diplomeName: Strig, school: String
const bookSchema = new mongoose.Schema({
name: String,
authors: [{
authorName : String,
diplomes :[{
diplomeName: Strig,
school: String
}]
}],
})
module.exports = mongoose.model('book', bookSchema);
[
{
"name":"name1",
"authors":[
{
"authorName":"authirname1-1",
"diplomes":[
{
"diplomeName":"diplomename1-1-1",
"school":"school1-1-1"
},
{
"diplomeName":"diplomename1-1-2",
"school":"school1-1-2"
}
]
},
{
"authorName":"authirname1-2",
"diplomes":[
{
"diplomeName":"diplomename1-2-1",
"school":"school1-1-1"
},
{
"diplomeName":"diplomename1-2-2",
"school":"school1-2-2"
}
]
},
]
},
{
"name":"name2",
"authors":[
{
"authorName":"authirname2-1",
"diplomes":[
{
"diplomeName":"diplomename2-1-1",
"school":"school2-1-1"
},
{
"diplomeName":"diplomename2-1-2",
"school":"school2-1-2"
}
]
},
{
"authorName":"authirname2-2",
"diplomes":[
{
"diplomeName":"diplomename2-2-1",
"school":"school2-1-1"
},
{
"diplomeName":"diplomename2-2-2",
"school":"school2-2-2"
}
]
},
]
}
]
我想要一本只有学校1-2-2的还书
预计结果如下:
[
{
"name":"name1",
"authors":[
{
"authorName":"authirname1-2",
"diplomes":[
{
"diplomeName":"diplomename1-2-2",
"school":"school1-2-2"
}
]
}
]
}
]
请帮忙把它弄好
需要使用查找方法或聚合?我们可以使用位置$[]运算符来检索此类数据,但不允许$[]运算符搜索2级深度的数据,这是您希望在2级深度数组中搜索数据的情况。有关更多问题,请参阅