sql >> データベース >  >> NoSQL >> MongoDB

数値フィールドのクエリのようなSpringブートmongoDB-整数/倍精度

    ダブルフィールドでLIKEクエリを作成できました。

    Query query = new Query();
    Set<String> gameType = new HashSet<>();
    List<Criteria> andCriteria = new ArrayList<>();
    
    String game = "football";
    int salary = 250;   
    
    gameType.add(game);
    
    andCriteria.add(Criteria.where("type").in(gameType));
    andCriteria.add(Criteria.where("$where").is("/^" + salary + ".*/.test(this.salary)"));
    
    Criteria[] criteriaArray = new Criteria[andCriteria.size()];
    criteriaArray = andCriteria.toArray(criteriaArray);
    query.addCriteria(new Criteria().andOperator(criteriaArray));
    
    List<Players> players = mongoTemplate.find(query, Players.class);
    
    return players;
    

    このコードスニペットは、上記で投稿したようにLIKEを生成します。
    また、簡単な方法で実行できます。

    Query query = new Query();
    Set<String> gameType = new HashSet<>();
            
    String game = "football";
    int salary = 250;
            
    gameType.add(game);
            
    query.addCriteria(Criteria.where("type").in(gameType));
    query.addCriteria(Criteria.where("$where").is("/^" + salary + ".*/.test(this.salary)"));
    
    List<Players> players = mongoTemplate.find(query, Players.class);
    
    return players; 
    

    クエリ:

    db.players.find({
      $and: [{
          "type": {
            $in: ["football"]
          }
        },
        {
          $where : "/^250.*/.test(this.salary)"
        }]
    })     
    

    これがお役に立てば幸いです。



    1. node.js&express-アプリケーション構造のグローバルモジュールとベストプラクティス

    2. Redisパブリッシュ/サブスクライブ

    3. Double NestedArrayMongoDBで検索

    4. MongodbNoRMとPOCO