我在mongodb中有两个层次的分层文档。 集合名称称为书,它具有作者和作者的文凭,像这样的子文档:
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"
}
]
}
]
}
]
请提供任何帮助以使其正常运行 需要使用查找方法还是聚合?
答案 0 :(得分:0)
我们可以使用位置$ []运算符检索此类数据,但是$ []运算符不允许深度2级搜索数据,这是您要在2级深度数组中搜索数据的情况。有关更多问题,请参阅Documentation