查找嵌入在数组

时间:2017-09-10 02:48:14

标签: mongodb

挑战:我有两个系列,学校和学生。学生是学生收藏中的单独文件。学校文件有一个嵌入式阵列,所有学生的对象ID都在学校上学。我正在编写一个查询,允许我过滤掉包含学生子数组的文档。例如

{ 
    "_id" : ObjectId("59b49e31e4246501e057fa93"), 
    "name" : "school1", 
    "students" : [
        ObjectId("59b49d8de4246501e057fa77"), 
        ObjectId("59b49d9ae4246501e057fa7a"), 
        ObjectId("59b49da9e4246501e057fa7e")
    ]
}
{ 
    "_id" : ObjectId("59b49e86e4246501e057fa94"), 
    "name" : "school2", 
    "students" : [
        ObjectId("59b49d8de4246501e057fa76"), 
        ObjectId("59b49d9ae4246501e057fa7f"), 
        ObjectId("59b49da9e4246501e057fa80")
    ]
}
{ 
    "_id" : ObjectId("59b49ebfe4246501e057fa9e"), 
    "name" : "school3", 
    "students" : [
        ObjectId("59b49d8de4246501e057fa85"), 
        ObjectId("59b49d9ae4246501e057fa86"), 
        ObjectId("59b49da9e4246501e057fa77")
    ]
}
{ 
    "_id" : ObjectId("59b49eece4246501e057faac"), 
    "name" : "school4", 
    "students" : [
        ObjectId("59b49d8de4246501e057fa87"), 
        ObjectId("59b49d9ae4246501e057fa88"), 
        ObjectId("59b49da9e4246501e057fa89"), 
        ObjectId("59b49da9e4246501e057fa7e")
    ]
}

我想过滤掉包含以下数组的文档:

students: [ObjectID('59b49d8de4246501e057fa77'),ObjectID('59b49d8de4246501e057fa77')]

我已经尝试了$ elemMatch和$ in但两个都没有工作。

db.schools.find({students: {$in : ['59b49d8de4246501e057fa77','59b49d9ae4246501e057fa7a']}})

请帮忙。

0 个答案:

没有答案