आप $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
}
}])