mongoose 条件查询时如何实现判断

2015-10-24 19:19:37 +08:00
 cc7756789
Model.find()
    .where('type', one)
    .where('published', two)
    .where('nation', three)
    .sort({'field': -1})
    .exec(callback)

one, two, three 有可能是 0, 代表搜索全部, 其值由前端传入, 但是数据库中每个字段由 1 开始, 我想要类似的效果

Model.find()
    if (one != 0) {
        .where('type', one)
    }
    if (two != 0) {
        if (two != -1) {
            .where('published', two)
        } else {
            .where('published').lte(2010)
        }
    }
    if (three != 0) {
    .where('nation', three)
    } 
    .sort({'field': -1})
    .exec(callback)

这样的结果在 mongoodse 该如何实现

3236 次点击
所在节点    Node.js
1 条回复
cdxem713
2015-10-24 19:32:22 +08:00
你自己构造一个 object,自己组条件不就好了么
var query = {}
(one !=0) && (query['type']=one);
......
Model.find(query).sort(...).exec...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/230764

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX