MongoDB Regular Expression Search - Starts with using javascript driver and NodeJS

I'm using javascript mongodb driver from nodejs. I want to do this query in my javacript function

> db.mycollection.find({Zip:/^94404/}); mongo client retrieves 8 docs that match this criteria

however my java script code does not fetch any documents


    DataProvider.prototype.findByZipcode = function(zipCode, callback) {
        this.getCollection(function(error, collection) {
            if (error)
                callback(error);
            else {
                var qs = '{Zip:/^'+zipCode+'/}';
                collection.find(qs).toArray(function(error, results) {
                    if (error)
                        callback(error);
                    else
                        callback(null, results);
                });
            }
        });
    };

I also tried

<pre>
var qs = {Zip: '/^'+zipCode+'/'};
</pre>

Btw, I find exact match works fine, but thats not what I want. ie.

<pre>
var q = {'Zip' :zipCode};
</pre>

You almost have it. You keep ending up with a regex inside a string and looking for the string '/^94404/' and that string isn't going to match anything unless you have some strange looking zip codes.

The easiest way to build a regex object from a string in JavaScript is to use new RegExp(...):

var query = { Zip: new RegExp('^' + zipCode) };

Then you can:

collection.find(query).toArray(...)

That sort of thing works in the MongoDB shell and similar things work in the Ruby interface so it should work in the JavaScript interface as well.