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

Javaドライバーを使用してMongoDBの$またはクエリを作成するにはどうすればよいですか?

    クエリで複数のフィールドを指定するための「デフォルト」は、各フィールドが条件付きフィルターとして機能するため、AND演算であるということは正しいです。

    次の構文を持つ$orオペランドを使用して、OR句を使用してMongoDBクエリを実行できます:

    db.col.find({$or:[clause1, clause2]})
    

    各句をクエリにすることができます。 $ orは最上位のオペランドである必要はありませんが、MongoDBの場合は、個別の句ごとにインデックスを使用できます。

    あなたの例では、このクエリで終わりたいと思います:

    db.col.find({$or:[{"post_title", regex}, {"post_description", regex}]});  
    

    これは、Javaで:

    を介して構築できます。
    DBObject clause1 = new BasicDBObject("post_title", regex);  
    DBObject clause2 = new BasicDBObject("post_description", regex);    
    BasicDBList or = new BasicDBList();
    or.add(clause1);
    or.add(clause2);
    DBObject query = new BasicDBObject("$or", or);
    


    1. JavaEEWebサービス全体で単一のMongoClientを使用する

    2. PythonはMongodbのOplogへの変更をどのように観察できますか

    3. ドキュメント内のサブ配列から最大値を見つける

    4. MongoDBで_idとして文字列表現の代わりにUUIDを使用すると、パフォーマンスが向上しますか?