收藏
回答

where 构建动态条件 类似mybatis的<if test="true">?

where 构建动态条件 类似mybatis的<if test="true">

最后一次编辑于  09-01
回答关注问题邀请回答
收藏

3 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    09-02

    这样?

    var where = {

    goodsName:{

    $regex: ".*" + event.goodsName + ".*",

    $options: 'i'

    }

    }

    event.type && where.type = event.type;

    event.tags && where.tags = event.tags;


    var c = db.collection('goods')

    c = c.where(where)

    // orderBy = [{field:'view',direction:'desc'}, {field:'price',direction:'desc'}, {field:'cerateTime',direction:'desc'}]

    for(var i in event.orderBy){

    c = c.orderBy(event.orderBy[i].field, event.orderBy[i].direction);

    }

    c.skip(skip)  

    .limit(10)

    .get()


    09-02
    赞同 1
    回复
  • aholy.cium
    aholy.cium
    09-02

    上面两位的代码解决你疑惑了吗

    09-02
    赞同
    回复 1
    • aholy.cium
      aholy.cium
      09-02回复馒头
      emmm。。。。
      09-02
      回复
  • 米法(BINNIE SMILE)
    米法(BINNIE SMILE)
    09-01

    你想干啥

    09-01
    赞同
    回复 1
    • 馒头
      馒头
      09-01

      就是云函数 db.collection.get()  wher里面的条件个数不定,包括外面的oderby条件可有可无

      db.collection('goods')
          .where({
            goodsName: {
              $regex: ".*" + event.goodsName + ".*",
              $options: 'i'
            },
            type: event.type, //动态有或者没有这个条件
            tags: event.tags//动态有或者没有这个条件
       
       
          })
          .orderBy('view', 'desc') //动态有或者没有这个条件
          .orderBy('price', event.price) //动态有或者没有这个条件
          .orderBy('cerateTime', 'desc'
          .skip(skip)  
          .limit(10)
          .get()


      09-01
      回复
问题标签