zoukankan      html  css  js  c++  java
  • 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);                
    
  • 相关阅读:
    方法的重载
    构造方法
    方法与主方法
    类的一般形式
    多维数组
    如何使用数组
    数组的创建以及初始化
    流程控制之break、continue、return的用法
    流程控制之循环结构
    流程控制值选择结构
  • 原文地址:https://www.cnblogs.com/zxcgy/p/7280827.html
Copyright © 2011-2022 走看看