Install eslint-plugin-mongodb as a dev-dependency:
npm install --save-dev eslint-plugin-mongodb
Enable the plugin by adding it to your .eslintrc:
plugins:
- mongodb
You can also configure these rules in your .eslintrc. All rules defined in
this plugin have to be prefixed by 'mongodb/'
plugins:
- mongodb
rules:
- mongodb/no-replace: 0
Settings
In order to recognize MongoDB native driver queries, this plugin check for
function calls. By using shared settings
you can specify your own patterns, here are the defaults:
Note that the above are strings representing regular expressions. It will be
cast with the RegExp constructor so you have to escape your escapes ;).
Rules
check-insert-calls
Default: 'check-insert-calls': 2
Check insertOne/insertMany calls to ensure their arguments are well formed.
check-query-calls
Default: 'check-query-calls': 2
Check find/findOne calls to ensure their arguments are well formed.
check-update-calls
Default: 'check-update-calls': 2
Check update calls to ensure their arguments are well formed.
check-remove-calls
Default: 'check-remove-calls': 2
Check remove calls to ensure their arguments are well formed.
check-deprecated-calls
Default: 'check-deprecated-calls': 2
Check collection calls and warn in case of deprecated methods usage.
no-replace
Default: 'no_replace': 1
Check update queries to ensure no raw replace is done.
check-rename-updates
Default: 'check-rename-updates': 2
Check $rename update operator usage.
check-unset-updates
Default: 'check-unset-updates': 2
Check $unset update operator usage.
check-current-date-updates
Default: 'check-current-date-updates': 2
Check $currentDate update operator usage.
check-numeric-updates
Default: 'check-numeric-updates': 2
Check update queries to ensure numeric operators like $mul and $inc contain
numeric values.
check-minmax-updates
Default: 'check-minmax-updates': 2
Check $min and $max update operators usage.
check-set-updates
Default: 'check-set-updates': 2
Check $set and $setOnInsert update operators usage.
check-push-updates
Default: 'check-push-updates': 2
Check $push update operator usage and its modifiers.
check-pull-updates
Default: 'check-pull-updates': 2
Check $pull update operator usage.
check-pop-updates
Default: 'check-pop-updates': 2
Check $pop update operator usage.
check-addtoset-updates
Default: 'check-addtoset-updates': 2
Check $addToSet update operator usage and common misuses.
check-deprecated-updates
Default: 'check-deprecated-updates': 2
Check deprecated update operator usage.
Contributing
Feel free to push your code if you agree with publishing under the MIT license.
How to create a new rule
Avoid wasting your time and follow those steps to suggest a new rule:
create and issue prefixed by [rule] and followed by it's name
OR create the rule tests file in the src/lib/rules directory directly, create
a branch whose name is the proposed rule name. Finally create a pull request.
let's discuss about the feature and its implementation details.
implement the feature.
Changing a specific rule behavior
Create and issue prefixed by [rule] and let us know what should change.