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

mongodbクエリを動的に構築する方法

    $inを使用できます 配列が空でなく、 $ninの場合 配列が空の場合、この方法では一致フィールドは考慮されません($nin : [] ):

    function buildMatch(arr) {
        var matcher = {};
        if (arr.length == 0)
            matcher["$nin"] = arr;
        else
            matcher["$in"] = arr;
        return matcher;
    }
    
    var grades = ["09", "10", "11", "12"];
    var areas = [ "English 2" ];
    
    var gradeMatch = buildMatch(grades);
    var areaMatch = buildMatch(areas);
    
    db.students.aggregate([{
        $match: {
            "school._id": "7011",
            "studentGradeLevels": gradeMatch,
            "contentArea": areaMatch
        }
    }])
    


    1. 照合機能をサポートするためにMongoDBクエリに引数を手動で指定する(大文字と小文字を区別しないインデックスの場合)

    2. Spring boot / mongoは、インデックスアノテーションを使用してインデックスを作成しません

    3. pymongoを使用してmongodbドキュメントを読んで更新するための最良の方法

    4. MongoDB count()とcountDocuments()