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

Java MongoDBドライバーを使用して、正規表現と複雑な基準でコレクション検索をコーディングするにはどうすればよいですか?

    クエリの作成は、実際にはBSONドキュメント表現を作成するだけです。これは、基本的に、標準のHashMapまたはListインターフェイスと同じインターフェイスです。

        Document query = new Document("objectKey",new Document( "$regex","Bos"))
            .append("cacheVersionString","08/03/15_11:05:09");
    
        Document projection = new Document("_id",0)
            .append("objectData",0)
            .append("lastModified",0)
            .append("productCode",0);
    
        MongoCursor<Document> cursor = collection.find(query).projection(projection).iterator();
    

    これは、MongoDBシェルでクエリを構造化する方法と基本的に同じです。

    または、より論理的であると思われる場合は、ビルダーインターフェイスを使用できます。

        QueryBuilder builder = QueryBuilder.start();
    
        builder.and("objectKey").regex(Pattern.compile("box"));
        builder.and("cache_version_string").is("08/03/15_11:05:09");
    
        BasicDBObject query = (BasicDBObject)builder.get();
    
        Bson projection = Projections.exclude(
                "_id",
                "obectdata",
                "lasModified",
                "productCode"
        );
    
        MongoCursor<Document> cursor = collection.find(query).projection(projection).iterator();
    
        while (cursor.hasNext()) {
            Document doc = cursor.next();
            System.out.println(doc.toJson());
        }
    

    どちらの形式も、基本的に「クエリ」コンポーネントと「プロジェクション」コンポーネントの両方のBSONを構成し、それらを.find()への引数として発行します。 方法。自分に合っている場合は、クラスタイプの定義もあります。




    1. MongoDB Date()メソッド

    2. MongoDB$pull配列2レベル

    3. MongoDB集約選択プロジェクト

    4. maxDistanceのmongodbマングース単位