节点中的Mongo条件条件

时间:2015-07-21 16:08:13

标签: node.js mongodb

我希望能够拥有一个可以根据日期过滤的API。所以你传递了类似下面的东西:

    dob: {
        date: new Date("5/22/1955"),
        filter: 'lt'
    }

这应该返回DOB小于日期的所有记录,但是如果" gte"在过滤器中传递,而不是它应该返回DOB大于或等于日期的所有记录。

显然,Mongo查询将是

dobQuery = {dob: {gte: data.dob.date}};
dobQuery = {dob: {lt: data.dob.date}};

但我怎么能让这个有条件?我想写这样的东西,但当然这不起作用:

dobQuery = {dob : {"$" + data.dob.filter: data.dob.date}};

我该如何写出来?

1 个答案:

答案 0 :(得分:1)

使用括号表示法以编程方式构建dobQuery

dobQuery = {dob: {}};
dobQuery.dob['$' + data.dob.filter] = data.dob.date;