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: 
You can disable the "\_\_v" attribute in your Schema definitions by setting the `versionKey` option to `false`. For example:

```
var widgetSchema = new Schema({ ... attributes ... }, { versionKey: false });

```

I don't think you can globally disable them, but can only do it per Schema. You can read more about Schema's [options here](http://mongoosejs.com/docs/guide.html#versionKey). You might also find the [Schema set method](http://mongoosejs.com/docs/api.html#schema_Schema-set) helpful.
You may not want to disable `__v`, other answers provide few links to answer why you shouldn't disable it.

I've used this library to hide the `__v` and `_id`

<https://www.npmjs.com/package/mongoose-hidden>

```
let mongooseHidden = require("mongoose-hidden")();

// This will add `id` in toJSON
yourSchema.set("toJSON", {
        virtuals: true,
    });

// This will remove `_id` and `__v` 
yourSchema.plugin(mongooseHidden);

```

Now `__v` will exist, but it won't be returned with `doc.toJSON()`.

Hope it helps.