Skoro to máš. Stále končíte s regulárním výrazem uvnitř řetězce a hledáte řetězec '/^94404/'
najdu cokoli, pokud nemáte nějaká podivně vypadající PSČ.
Nejjednodušší způsob, jak vytvořit objekt regulárního výrazu z řetězce v JavaScriptu, je použít new RegExp(...)
:
var query = { Zip: new RegExp('^' + zipCode) };
Pak můžete:
collection.find(query).toArray(...)
Něco takového funguje v prostředí MongoDB a podobné věci fungují v rozhraní Ruby, takže by to mělo fungovat i v rozhraní JavaScriptu.