What is the best way to extract the value from the previous month using a timestamp?

Greetings everyone! This is my first visit here, so I hope my question isn't too terrible. I'm currently working on retrieving data from the last day, last week, and last month stored in a mongo collection.
Here's what I have attempted so far:

  if(period.includes("daily")){
    //search for data from 24 hours before now
    DockerStatsToKeep.find({
      read: { "$gte": moment(new Date()).subtract(86400, 'second').unix()}
    });
  }else if (period.includes("weekly")) {
    //search for data from 168 hours before now (7 days)
    DockerStatsToKeep.find({
      read: { "$gte": moment(new Date()).subtract(604800, 'second').unix()}
    });
  }else if (period.includes("monthly")) {
    //need help with searching for data from last month 
    DockerStatsToKeep.find({
      read: { "$gte": moment(new Date()).subtract(xx, 'second').unix()}
    });
  }else{
    console.error("Oops! It seems like you have entered an invalid period format. Please use 'daily, weekly, or monthly'");
  }

I'm currently facing a roadblock when it comes to retrieving data from the last month as the number of days can vary. Some months have 30 days, some have 31, while February has 28 or 29 days.

Answer №1

If you're using momentjs, you have the ability to subtract a month like this:

moment(new Date()).subtract(1, 'month').unix()

This feature also accounts for transitions between years. For example, subtracting 1 month from a date in January 2017 will give you a date in December 2016

For more information, check out the documentation on subtract

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Top strategy for monitoring a user's advancement in reading different text segments

If you are familiar with zyBooks, I am looking to implement a similar feature where users can track the sections they have read and mark them as completed with a button. However, I am struggling conceptually with determining how best to structure my mongo ...

The responsive navigation menu expands

Struggling with my responsive menu issue here. I must admit, I am not a coding expert by any means, but I've been tasked with web design responsibilities at work. The problem at hand is that the website isn't fully responsive, except for the "ar ...

The Rails text area fails to load through JavaScript when a line break is detected

My comment form has a feature that displays the content of the text area using js. It functions properly unless a new line is entered in the text area, in which case it does not show up right away. However, after refreshing the page, the comment appears wi ...

Encountering issues with MyModel.findOne not being recognized as a function while utilizing Mongoose within Next.js 14 Middleware

Within my Next.js middleware, I am encountering the following code: let user: UserType[] | null = null; try { user = await findUser({id}); console.log("user", user); } catch (error: any) { throw new Error(error) ...

Corrupted PDF file after attempting to download through AJAX

Currently, my method involves making an API call (using cURL on the server-side) to fetch an XML file. Inside this XML file is a base64 encoded PDF, which I then extract and save on the server for future downloading. The process goes like this: <?php ...

The HTTP GET request in Express.js is throwing a 500 internal server error

I have implemented a GET API call to retrieve all users from my Logins database. However, I keep encountering 500 errors when making the request. Below is the code snippet I am using: const http = axios.create({ baseURL: "http://localhost:8080/api ...

Can I install more than one instance of Framework7 on the same device?

Currently, I am working on a project using cordova 6.2.0 and framework7 1.6.5. However, now I need to initiate a new project that will be based on cordova 7.1.0 and framework7 2.0.7. I am aware that there is version-manager-cordova-software [1] available ...

Unusual behavior observed within for loop; code within not running as expected

I will be presenting my code along with some images to illustrate the issue at hand. Something as simple as declaring a variable or using the log function results in the json being undefined. Upon entering text into the input field, the ajax call is trigg ...

Ways to retrieve the text value of the first column using a button click event in JavaScript

As a beginner in HTML and JavaScript, I have a clear code provided below: HTML <tr> <td>1</td> <td>Info1</td> <td><input class="btn" value="Show" onclick="showTdSecond();" type="button"></td> & ...

Adding a class to individual elements generated through a v-for loop: a step-by-step guide

I have been working on a basic inventory "checker" that generates 14 divs labeled as either "active" or "inactive". Using Vue, I am able to create these divs with a simple v-for loop: <div class="inventory"> <div class="item" v-for="index in 14" ...

If an error occurs at the top level subscription, then RxJs won't employ switchMap

If my initial Observable encounters an error, then I will not subscribe to the switchMap Observable. Is this achievable? this._profileService.updateProfile(profile).pipe( tap(profile => { this.profile = profile; this.saving = false; this. ...

Issues arise with the loading of models while attempting to utilize Mocha testing

I'm currently in the process of using mocha for testing my express application. In terms of folder structure, it looks like this: myapp |-app |--models |-test |--mocha-blanket.js |--mocha |--karma |-server.js The server.js file serves as my express ...

Designate categories by utilizing the x-amz-tagging request header

I'm in the process of creating a Node program to upload files to aws s3, and I'm having trouble figuring out how to specify the x-amz-tagging with the request header. I attempted a solution, but it's not working as expected! function crea ...

Can you guide me on how to programmatically set an option in an Angular 5 Material Select dropdown (mat-select) using typescript code?

I am currently working on implementing an Angular 5 Material Data Table with two filter options. One filter is a text input, while the other is a dropdown selection to filter based on a specific field value. The dropdown is implemented using a "mat-select" ...

Deactivate Search Functionality for Users who are not Logged in on an Angular 2 Application

The login component and view are functioning as intended, preventing users from accessing AuthGuard protected routes if they're not logged in. However, I'm facing a challenge with the search bar displayed on the home login screen (actually presen ...

bespoke filter designed to conceal any negative figures

I am trying to implement a feature where a text box will display nothing if the ng-model contains a negative value. I want the ng-model to remain unchanged while ensuring that negative values are not displayed. I am looking for a custom filter to achieve t ...

Organizing a Collection of Likes within an AngularJS Service

I have a like button on my profile page that, when clicked, should add the user's like to an array and store it in the database. Within my profile controller, I have the following code: $scope.likeProfile = UserService.likeProfile(loggedInUser,$stat ...

Using Node.js and the Jade templating engine, display the value of a passed variable

Asking such a basic question makes me feel guilty. app.get('/skumanagement/:id', function (req, res){ var options = req.params.id; // req.params.id = itemidx database.skuGetDetail(options, function (error, data){ winston.log('inf ...

How to efficiently calculate totals in an HTML table using JavaScript/jQuery

I have a gridview that displays product details and includes a quantity textbox that is not linked to any database. For each row, I want it to show the cost (price * quantity) and the total cost for all rows in a label below. However, I am encountering a f ...

Establishing a link to a MongoDB database using the URL containing the specified database name

Currently, I am setting up a MongoDB collection by using the following lengthy initialization process: var mongoUrl = new MongoUrl(_connectionString); var mongoClient = new MongoClient(mongoUrl); var mongoServer = mongoClient.GetServer(); var mongoDatabas ...