• mongodb $where查询


    mongodb中$where查询功能非常强大,不过效率低,这里介绍一下$where的使用方法

    db.getCollection('rest.modules.entity.TestCase').find({$where:
        function () { 
            var result=true;
            var selectTarger='ffffe10183c3e1ff';
            var temp = this.fingerCode;
            var different = 0;
            for(var i=0;i<16;i++){
                if (selectTarger.charAt(i)!=temp.charAt(i)){
                    different++;
                }
            }
            if (different==0){
                result = true;
            }else if (different <= 5){
                result = true;
            }else{
                result=false;
            }
            return result;
         }
      }).limit(10);
      

    用java mongo driver调用

    BasicDBObject totalQuery=new BasicDBObject();
    				
    				StringBuilder sb=new StringBuilder();					
    				sb.append("function () { var result=true;");
    				sb.append("var selectTarger='"+fingerCode+"';");
    				sb.append("var temp =     this."+whereT.getFingerCodeField()+";");
    				sb.append("var different = 0;");
    				sb.append("for(var i=0;i<16;i++){");
    				sb.append("if (selectTarger.charAt(i)!=temp.charAt(i)){");
    				sb.append("different++;");
    				sb.append("}");
    				sb.append("}");
    				sb.append("if (different==0){");
    				sb.append("result = true;");
    				sb.append("}else if (different <= 5){");
    				sb.append("result = true;");
    				sb.append("}else{");
    				sb.append("result=false;");
    				sb.append("}return result;}");
    				
    
    			
    				
    				totalQuery.append(QueryOperators.WHERE, sb.toString());
    				
    				
    				
    			    FindIterable<Document> fiList = collection.find(totalQuery).limit(10);                
    
  • 相关阅读:
    回发保留前台添加的html
    关于NBear数据访问层IDData
    使用js把数字转化成会计格式
    二次注入
    .htaccess利用与Bypass方式总结
    HTTPoxy漏洞(CVE-2016-5385)
    JAVA并行程序基础一
    队列-数组实现
    Vuex
    稀疏数组
  • 原文地址:https://www.cnblogs.com/zxcgy/p/7280827.html
Copyright © 2020-2023  润新知