Aggregation is very slow

Hi Team,

I have defined a compound index on product id, first date and last date but the first stage of the aggregation use another index (with product id) instead of the mentioned above.
Pipeline begins with a match on product id + or operator between first date and last date.

Can anyone help me to identify where is the problem?
What means acquireCount equals to 1188?

Thank you

Follows the output of the explain:

{
    "desc": "conn59",
    "threadId": "21012",
    "connectionId": 59,
    "client": "127.0.0.1:54172",
    "active": "true",
    "opid": 25351,
    "secs_running": 6,
    "microsecs_running": 6307055,
    "op": "command",
    "ns": "happy.product_operations",
    "query": "{ aggregate: \"product_operations\", pipeline: [ { $match: { productId: 3001, $or: [ { lastDate: { $gte: 1542965973111.0 }, firstDate: { $lte: 1542965973111.0 } }, { lastDate: { $lte: 1594370812913.0 }, firstDate: { $gte: 1542965973111.0 } }, { lastDate: { $gte: 1594370812913.0 }, firstDate: { $lte: 1594370812913.0 } } ] } }, { $project: { _id: 0, data: 1 } }, { $unwind: \"$data\" }, { $replaceRoot: { newRoot: \"$data\" } }, { $match: { 153333: { $nin: [ nan(snan).0, null ] }, ar.s.anotherId: 8104, Date: { ...",
    "planSummary": "IXSCAN { productId: 1 }",
    "numYields": 402,
    "locks": {
        "Global": "r",
        "Database": "r",
        "Collection": "r"
    },
    "waitingForLock": "false",
    "lockStaDate": {
        "Global": {
            "acquireCount": {
                "r": 1188
            }
        },
        "Database": {
            "acquireCount": {
                "r": 594
            }
        },
        "Collection": {
            "acquireCount": {
                "r": 593
            }
        }
    }
}