如何查询阵列中MongoDB聚集中的不同组合和ORS的组合



我正在尝试搜索使用逻辑和OR的不同组合完成课程的学生列表。

例如,我想让完成的学生("课程1"one_answers"课程2")或"课程3"

这是我每个学生的数据结构:

{
      "_id" : ObjectId("5c68841cb6b18f31975c8fb0"),
      "courses" :  [ 
           "Course 1", "Course 4"
        ]
}

这是我的代码:

db.getCollection('users').aggregate([
    {
        $match: { 
            "courses": {
                $or: {
                    $all: ["Course 1","Course 2"],
                    $in : ["Course 3"]
                 }
            }
        }
    }
])

我尝试嵌套不同的操作员($all$in$and$or)并失败。

实际上$or是顶级运算符,您以错误的方式使用了它

db.collection.aggregate([
  { "$match": {
    "$or": [
      { "courses": { "$all": ["Course 1", "Course 2"] }},
      { "courses": { "$in": ["Course 3"] }}
    ]
  }}
])

最新更新