I am working on a nodejs/express app with Mongodb on the backend. In one of my API calls, depending on the presence of a particular querystring parameter or the other I want to issue a query to Mongodb with either a $gt or a $lt.
In some cases we want to ask for everything less than the tokenId
using $lt, but in other cases we want everything greater than the tokenId
using $gt. How do we do that without duplicating the queries?
Here's an example query:
collection.find({'film_id': {$in : genre}, '_id': {$lt: tokenId}}).sort({'_id': -1}).limit(25).toArray(function(error, films)
Is there a way to dynamically create the query without actually doing 2 different queries?
Build up your query object programmatically:
Update
Now that Node.js 4+ supports computed property names, you can create
query
in one step as:The Above code may not work. The above dynamic query will be resolved to following Ex. Token is an integer 35.
resulting in Error
The correct syntax should be:
The double "" quotes should not be there.