MongoDB
 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose:задайте поле от тип „масив от низове“

  2. MongoDB Показване на детски елементи във връзка Едно към много

  3. Как да получите брой от обобщените резултати от търсенето

  4. Като се има предвид списък с идентификатори, кой е най-добрият начин да направите заявка кои идентификатори не съществуват в колекцията?

  5. Въпрос за агрегиране на MongoDB Map/Reduce Array