I feel the same. That why I call them, this and mongoose, obstruction layer rather than abstraction layer.
One of the selling point of mongo is that they do not impose a schema. You could, but that would be another obstruction layer. For the same reason, I do not use query builders in Java. With my query in native json, I can have the same query, sometimes stored in a file, be used in all nodejs, mongosh, java, … with the help of parse().