Você quase tem. Você continua terminando com um regex dentro de uma string e procurando pela string
'/^94404/'
vai encontrar qualquer coisa, a menos que você tenha alguns códigos postais de aparência estranha. A maneira mais fácil de construir um objeto regex a partir de uma string em JavaScript é usar
new RegExp(...)
:var query = { Zip: new RegExp('^' + zipCode) };
Então você pode:
collection.find(query).toArray(...)
Esse tipo de coisa funciona no shell do MongoDB e coisas semelhantes funcionam na interface Ruby, então deve funcionar na interface JavaScript também.