MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak dynamicznie budować zapytanie mongodb

Możesz użyć $in gdy tablica nie jest pusta i $nin gdy tablica jest pusta, w ten sposób pole dopasowania nie będzie brane pod uwagę ($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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kopiuj/klonuj kolekcję w MongoDB

  2. Jak napisać pustą tablicę asocjacyjną ({}) do MongoDB z PHP

  3. Aktualizowanie zagnieżdżonych tablic w mongoDB za pośrednictwem powłoki mongo

  4. Grupuj według wielu kolumn w MongoDB

  5. Błąd podczas pobierania MongoDB przez _Id w Flask