The doc for currentOp gives an example for getting the running index builds. If the command for building the indexes is too long, though, it will get $truncated and the query in the example will filter out the index building operation.
So for instance, the command for my index build was
command: { '$truncated': '{ createIndexes: "tasks", indexes: [ { v: 2, key: { depends_on._id: 1 }, name: "depends_on._id_1", ns: "mci.tasks", weights: {} }, { v: 1, key: { status: 1.0, build_variant: 1.0, order: 1.0 }, name: "status_1_build_variant_1_order_1", ns: "mci.tasks" }, { v: 1, key: { branch: 1.0, build_variant: 1.0, status: 1.0, finish_time: 1.0 }, name: "branch_1_build_variant_1_status_1_finish_time_1", ns: "mci.tasks" }, { v: 1, key: { branch: 1, r: 1, status: 1 }, name: "branch_1_r_1_status_1", ns: "mci.tasks" }, { v: 2, key: { build_id: 1.0, _id: 1.0 }, name: "build_id_1__id_1", ns: "mci.tasks" }, { v: 1, key: { execution_tasks: 1 }, name: "execution_tasks_1", ns: "mci.tasks" }, { v: 1, key: { branch: 1, r: 1, build_variant: 1 }, name: "branch_1_r_1_build_variant_1", ns: "mci.tasks" }, { v: 2, key: { distro: 1.0, status: 1.0, activated: 1.0, priority: 1.0 }, name: "distro_1_status_1_activated_1_priority_1", ns: "mci.tasks" }, { v: 1, key: { _id: 1 }, name: "_id_", ns: "mci.tasks" }, { v: 2, key...' },
which didn't match either of the clauses of the $or in the $currentOp example.