$setIsSubset (Check Subset Relation)

Last updated: 2026-10-09

$setIsSubset (Check Subset Relation)

$setIsSubset checks whether every element of the first array also appears in the second — that is, whether the first set is a subset of the second. Typical uses: verifying that a user's permissions cover all permissions an operation requires, or that chosen tags all belong to an allowed list. An empty first array returns true; an empty second array with a non-empty first returns false. null elements are ignored.

CategorySet, Condition & Conversion
MongoDB Version1.0+
Example Languagemongosh (Shell)

📝 Syntax

{ $setIsSubset: [ <arrayA>, <arrayB> ] }

⚙️ Parameters

array AThe candidate subset.
array BThe superset.

Returns:true when every element of A is in B, otherwise false

▶ Example

Run the commands below in your local mongosh (requires a running mongod):

// $setIsSubset: are all selected permissions allowed
db.roles.aggregate([
  { $project: {
      ok: { $setIsSubset: ['$selected', '$allowed'] }
  } }
])

Output:

{ '_id': 1, 'ok': true }

📌 Notes

More hands-on cases coming soon.

📚 Related Tutorials

❓ FAQ

QWhat does an empty first array return?
Atrue — the empty set is a subset of every set.
QHow does it differ from $setEquals?
A$setIsSubset checks one-way containment; $setEquals checks equality both ways.
QDoes order affect the result?
ANo — set semantics ignore order.
Web-Tutorial.com

Web-Tutorial Tech Team

A team of developers maintaining programming tutorials. Each tutorial is written and reviewed by developers with expertise in that field. We work to keep our content accurate and reliable — if you spot an issue, please let us know.

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏