https://github.com/candisio/mongo-selector-simplifier
Algorithmic MongoDB selector simplifier
https://github.com/candisio/mongo-selector-simplifier
mongodb query selector simplifier
Last synced: 3 days ago
JSON representation
Algorithmic MongoDB selector simplifier
- Host: GitHub
- URL: https://github.com/candisio/mongo-selector-simplifier
- Owner: CandisIO
- License: mit
- Created: 2018-07-30T21:17:12.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2020-04-04T16:53:05.000Z (about 5 years ago)
- Last Synced: 2025-05-13T13:19:24.726Z (3 days ago)
- Topics: mongodb, query, selector, simplifier
- Language: JavaScript
- Size: 170 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Mongo Selector Simplifier [](https://circleci.com/gh/CandisIO/mongo-selector-simplifier/tree/master) [](https://www.npmjs.com/package/@candis/mongo-selector-simplifier)
Reduce MongoDB selector query complexity using the commutative, associative and
distributive laws by de-separating nested clauses. The output can often times
help MongoDB's query planner to chose the best index.## Install
```
npm install --save @candis/mongo-selector-simplifier
```or
```
yarn add @candis/mongo-selector-simplifier
```## Usage
```js
import { simplify } from "@candis/mongo-selector-simplifier";const selector = {
$and: [
{ name: { $in: ["Rey", "Leia Organa", "Padmé Amidala", "Jyn Erso"] } },
{ name: "Rey" }
],
gender: "Female"
};const simplifiedSelector = simplify(selector); // outputs { gender: 'Female', 'name': 'Rey' }
```## Credit
Original work by @gsuess.
## License
`mongo-selector-simplifier` is [MIT licensed](./LICENSE).