" Node.js "

Using Grunt with grunt-replace to replace handlebars/mustache with package.json variables

Recently while¬†testing out some Node.js modules for Grunt I came across grunt-replace, and my first though was, this would be great for setting up boilerplate PHP files for my WordPress plugins. ¬†Because I already set the name, slug, version, and other details in the¬† package.json¬†file, it would be great to use a template I could create for PHP files and just use Grunt to take the details from ¬† package.json¬†¬†and setup my base plugin files using a template syntax like Handlebars or Mustache. ¬†Luckily for me it worked out perfectly, but did require a little bit of troubleshooting and head scratching, but here’s how to make it work … (more…)

How to use MongoDB date aggregation operators in Node.js with Mongoose ($dayOfMonth, $dayOfYear, $dayOfWeek, etc)

While I was working on creating a tutorial for MongoDB aggregation I came across a few issues while trying to use the built in date aggregation operators. ¬†I was storing the date in the db as the unix epoch timestamp. ¬†I tried multiple variations such as “new Date()”, “new Date().getTime()”, “Date.now()”, etc, but none of those would work. ¬†I kept getting this error “can’t convert from BSON type NumberDouble to Date”. ¬†Turns out, the solution was very simple, and something I completely overlooked (more…)

How to count the number of values found for a field in MongoDB using Node.js and Mongoose (using aggregation)

This post is part 1 of a series of posts I will make regarding Node.js and MongoDB.  I will be using the Mongoose module for Node.js, but for the most part the MongoDB syntax is about the same.  The ultimate goal with this series is to take data from a MongoDB database, and use that data to create a dynamic graph/chart with Morris.js.

The first step to this process is learning about MongoDB aggregation. The data we will be using in this example is a collection of products, that has a field product_manufacturer.¬† We will use MongoDB to return to us, the total number of products that each manufacturer has in our database. ¬†So let’s get started .. (more…)