# mongo-date-query

> Mongo date query helper for common queries

Latest version **2.0.2** (published 2024-09-13) · MIT license · 0 weekly downloads

## Install

```sh
npm install mongo-date-query
pnpm add mongo-date-query
yarn add mongo-date-query
bun add mongo-date-query
```

## Health

**Score 50/100 (C)** — status: stable.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: stale.

## Facts

| | |
|---|---|
| Version | 2.0.2 |
| Published | 2024-09-13 |
| First published | 2018-08-18 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 197 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 5 |
| Author | Talha Awan |
| Maintainers | talhaawan |
| Keywords | mongo, mongodb, mongoose, date, query |

## Links

- npm: https://www.npmjs.com/package/mongo-date-query
- Repository: https://github.com/TalhaAwan/mongo-date-query
- Homepage: https://github.com/TalhaAwan/mongo-date-query#readme
- Issues: https://github.com/TalhaAwan/mongo-date-query/issues
- npm.io page: https://npm.io/package/mongo-date-query

## Dependencies (1)

- [moment](https://npm.io/package/moment.md) ^2.30.1

## Alternatives

- [angular-pipes](https://npm.io/package/angular-pipes.md) — 5.6K weekly downloads
- [@ng-web-apis/midi](https://npm.io/package/@ng-web-apis/midi.md) — 2.6K weekly downloads
- [happn-3](https://npm.io/package/happn-3.md) — 1.6K weekly downloads
- [@opensip-cli/lang-go](https://npm.io/package/@opensip-cli/lang-go.md) — 1.2K weekly downloads
- [mongoose-typescript](https://npm.io/package/mongoose-typescript.md) — 85 weekly downloads

## Recent versions

- 2.0.2 (latest) — 2024-09-13
- 2.0.1 — 2024-09-13
- 2.0.0 — 2024-09-13
- 1.3.1 — 2020-11-07
- 1.3.0 — 2020-11-07
- 1.2.2 — 2019-06-11
- 1.2.1 — 2019-05-05
- 1.1.0 — 2019-04-15
- 1.0.3 — 2018-08-23
- 1.0.2 — 2018-08-18
- 1.0.0 — 2018-08-18

## README

[//]: # "The code structure for the repo: https://pauloe-me.medium.com/typescript-npm-package-publishing-a-beginners-guide-40b95908e69c"

# mongo-date-query ![Build Status](https://github.com/TalhaAwan/mongo-date-query/actions/workflows/build.yml/badge.svg)

> Mongo date query helper for common queries

## Description

Builds query objects for commonly used mongo date queries. Helpful in generating data for tables, graphs, and charts.

Works with both [mongoose](https://www.npmjs.com/package/mongoose) and [mongodb](https://www.npmjs.com/package/mongodb). All dates are in UTC.

## Install

```
$ npm install mongo-date-query
```

## Usage

### ES Module

```js
import mdq from "mongo-date-query";
```

### CommonJS

```js
const mdq = require("mongo-date-query");
```

## Example

```js
import mdq from "mongo-date-query";

//mongoose
User.find({ createdAt: mdq.lastWeek() }, function (err, users) {
  if (!err) {
    console.log(users);
  }
});

//mongodb
const collection = db.collection("users");
collection.find({ createdAt: mdq.yesterday() }).toArray(function (err, users) {
  if (!err) {
    console.log(users);
  }
});
```

## APIs

General pattern:

- **this**: Start and end of a time unit [*thisHour()*, *thisYear()* etc.]

- **next**: From now [*nextMonth()* = month from now]

- **last**: Before now [*lastYear()* = year before now]

- **coming**: The current given unit is not included [*comingYear()* = year after (not including) this year]

- **previous**: The current given unit is not included [*previousMonth()* = month before (not including) this month]

- **before**: Before the given unit [*beforePreviousMonth()*, *beforeLastMinute()*]

- **after**: After the given unit [*afterThisWeek()*, *afterNextMonth()*, *afterComingYear()*]

- **lastToNext**: From last time unit to next [*lastToNextMinute()* = from last minute to next minute, *lastToNextDay()* = from last 24 hours to next 24 hours]

- **APIs with plural version**: Takes a _Number_ parameter. Default is 1. [*nextMonths(2)*, *comingYears(3)*, *lastWeeks(4)*, *beforePreviousMonths(3)*, *afterComingYears(5)* *lastToNextDays(3, 4)*]

### thisSecond()

### nextSecond()

### nextSeconds(Number)

### lastSecond()

### lastSeconds(Number)

### thisMinute()

### previousMinute()

### previousMinutes(Number)

### lastMinute()

### lastMinutes(Number)

### comingMinute()

### comingMinutes(Number)

### nextMinute()

### nextMinutes(Number)

### thisHour()

### previousHour()

### previousHours(Number)

### lastHour()

### lastHours(Number)

### comingHour()

### comingHours(Number)

### nextHour()

### nextHours(Number)

### today()

### yesterday()

### previousDays(Number)

### lastDay()

### lastDays(Number)

### tomorrow()

### comingDays(Number)

### nextDay()

### nextDays(Number)

### thisWeek()

### comingWeek()

### comingWeeks(Number)

### nextWeek()

### nextWeeks(Number)

### previousWeek()

### previousWeeks(Number)

### lastWeek()

### lastWeeks(Number)

### thisMonth()

### comingMonth()

### comingMonths(Number)

### nextMonth()

### nextMonths(Number)

### previousMonth()

### previousMonths(Number)

### lastMonth()

### lastMonths(Number)

### thisYear()

### comingYear()

### comingYears(Number)

### nextYear()

### nextYears(Number)

### previousYear()

### previousYears(Number)

### lastYear()

### lastYears(Number)

### beforeNow()

### beforeLastSecond()

### beforeLastSeconds(Number)

### beforeThisMinute()

### beforePreviousMinute()

### beforePreviousMinutes(Number)

### beforeLastMinute()

### beforeLastMinutes(Number)

### beforeThisHour()

### beforePreviousHour()

### beforePreviousHours(Number)

### beforeLastHour()

### beforeLastHours(Number)

### beforeToday()

### beforeYesterday()

### beforePreviousDays(Number)

### beforeLastDay()

### beforeLastDays(Number)

### beforeThisWeek()

### beforePreviousWeek()

### beforePreviousWeeks(Number)

### beforeLastWeek()

### beforeLastWeeks(Number)

### beforeThisMonth()

### beforePreviousMonth()

### beforePreviousMonths(Number)

### beforeLastMonth()

### beforeLastMonths(Number)

### beforeThisYear()

### beforePreviousYear()

### beforePreviousYears(Number)

### beforeLastYear()

### beforeLastYears(Number)

### afterNow()

### afterNextSecond()

### afterNextSeconds(Number)

### afterThisMinute()

### afterComingMinute()

### afterComingMinutes(Number)

### afterNextMinute()

### afterNextMinutes(Number)

### afterThisHour()

### afterComingHour()

### afterComingHours(Number)

### afterNextHour()

### afterNextHours(Number)

### afterToday()

### afterTomorrow()

### afterComingDays(Number)

### afterNextDay()

### afterNextDays(Number)

### afterThisWeek()

### afterComingWeek()

### afterComingWeeks(Number)

### afterNextWeek()

### afterNextWeeks(Number)

### afterThisMonth()

### afterComingMonth()

### afterComingMonths(Number)

### afterNextMonth()

### afterNextMonths(Number)

### afterThisYear()

### afterComingYear()

### afterComingYears(Number)

### afterNextYear()

### afterNextYears(Number)

### lastToNextSecond()

### lastToNextSeconds(Number, Number)

### lastToNextMinute()

### lastToNextMinutes(Number, Number)

### lastToNextHour()

### lastToNextHours(Number, Number)

### lastToNextDay()

### lastToNextDays(Number, Number)

### lastToNextWeek()

### lastToNextWeeks(Number, Number)

### lastToNextMonth()

### lastToNextMonths(Number, Number)

### lastToNextYear()

### lastToNextYears(Number, Number)

## License

MIT © Talha Awan

---
_Source: https://npm.io/package/mongo-date-query · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
