挑战:我有两个系列,学校和学生。学生是学生收藏中的单独文件。学校文件有一个嵌入式阵列,所有学生的对象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']}})
请帮忙。