mongo 查询超时,新 $project 字段上的 $match

我正在尝试在计算 $project 字段后进行 $match 并且以下查询超时:


db.getCollection('bookings').aggregate([

    {"$match": {

        "location_id": ObjectId("5c123423234234234")

    }

    },

    {"$lookup": {from: 'inspections', localField: "_id", foreignField: "bookingId", as: 'inspection'}},

    {

        "$project": 

            {

                "endDate": 1,

                "startDate": 1,

                "state": 1,

                "inspection": 1,

                "late": 

                    {

                        "$cond": [

                            {

                            "$and": [

                            {

                                "$lte": ["$endDate", new Date()]

                            },

                            {                                                        

                                "$eq": ["$inspection", []]

                            }, {

                                

                           "$in": ["$state", ["returned", "active"]]

                                },

                       

                            ]

                            }

                            

                            , true, false

                         ],

                    }

            }

    },

     {

          "$match": { "late": true }

     }

])

你知道我做错了什么吗?问题在于,"$match": { "late": true }"当我尝试$match在我们正在查看非计算字段的字段上时 - 它工作正常。


Qyouu
浏览 271回答 1
1回答

ABOUTYOU

谢谢大家 - 这是一个真正的超时,而不是我的查询语法问题。我添加了一个索引,一切都很好。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python