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

springmongodbクエリで複数の基準を指定する

    コードをリファクタリングして、$orを作成できます 式。明示的な$andはありません オペレーターが必要です。

    のようなもの
     Query orQuery = new Query();
     Criteria orCriteria = new Criteria();
     List<Criteria> orExpression =  new ArrayList<>();
     for (Map<String, Object> accounts : attributes) {
       Criteria expression = new Criteria();
       accounts.forEach((key, value) -> expression.and(key).is(value));
       orExpression.add(expression);
     }
     orQuery.addCriteria(orCriteria.orOperator(orExpression.toArray(new Criteria[orExpression.size()])));
     List<User> userList = mongoOperations.find(orQuery, User.class);
    

    これにより、

    のようなクエリが出力されます。
    { "$or" : [{ "key1" : "value1", "key2" : "value2" }, { "key3" : "value3", "key4" : "value4" }] }
    


    1. Mongodbでの並列配列のインデックス作成

    2. メッセージアプリのMongoDB構造

    3. JHipsterRedis統合要素のバインドされていないエラー

    4. Mongodb再帰クエリ