Question: Mongoose adds a '\_\_v' property into Schema's for versioning - is it possible to disable this globally or globally hide it from all queries?

Answer: 
define a `toObject.transform` function, and make sure you always call `toObject` when getting documents from mongoose.

```
var SomeSchema = new Schema({
    <some schema spec>
  } , {
    toObject: {
      transform: function (doc, ret, game) {
        delete ret.__v;
      }
    }
});

```
You can use a Query Middleware to exclude any field from the output. In your case you can use this:

```
// '/^find/' is a regex that matches queries that start with find
// like find, findOne, findOneAndDelete, findOneAndRemove, findOneAndUpdate
schema.pre(/^find/, function(next) {
    // this keyword refers to the current query
    // select method excludes or includes fields using + and -
    this.select("-__v");
    next();
});

```

For more information in docs lookup:
[Middlewares](https://mongoosejs.com/docs/middleware.html)
[select method](https://mongoosejs.com/docs/api.html#query_Query-select)