Is there a way to use a variable for the field name in a find() in mongoose?
javascript, mongoose, node.js
Solution
You could use the built in `where` function, making the call to the function you've shown unnecessary:
Model.find().where(fieldName, value).exec(function(err, results) { });
And you could do more than one via chaining:
Model.find().where(field1, val1).where(field2, val2).exec(...)
It also can be rich, supporting nested properties and other operators:
Model.find().where('orders.total').gt(1500).exec(...)
Problem
Say you have a very long generic function you want to use over multiple schemas, and each schema has a different name for the field you're querying (and possibly different type of value -- string, number, etc.) ``` function foo (field, value){ Model.find({field: value}); } foo('idfoo', 'xx'); foo('idbar', 5); ``` I tried to do something like this as a proof of concept in mongoose and it seems it will only work if you use a variable for value, but you can't for field. Is this impossible?