[DOCS-9552] Docs for SERVER-6146: aggregation framework should have an $in expression Created: 05/Dec/16  Updated: 11/Jan/17  Resolved: 05/Dec/16

Status: Closed
Project: Documentation
Component/s: None
Affects Version/s: None
Fix Version/s: 01112017-cleanup

Type: Task Priority: Major - P3
Reporter: Emily Hall Assignee: Jonathan DeStefano
Resolution: Duplicate Votes: 0
Labels: expression
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Documented
documents SERVER-6146 aggregation framework should have an ... Closed
Duplicate
duplicates DOCS-9338 3.4: agg $in operator Closed
Participants:
Days since reply: 7 years, 10 weeks, 2 days ago
Epic Link: PM-507

 Description   

Engineering Ticket Description:

Syntax

{$in: [<arbitrary expression>, <arbitrary array expression>]}

Examples

db.coll.insert([
  {_id: 0, x: "Bob"}
]);
> db.coll.aggregate([{
  $project: {
    hasBobOrRob: {$in: ["$x", ["Bob", "Rob"]]}
  }
}]);
{_id: 0, hasBobOrRob: true}
 
// Example 2
> db.coll.insert([
  {_id: 0, x: "aaa"},
  {_id: 1, x: /^a/}
]);
> db.coll.aggregate([{
  $project: {
    matches: {$in: ["$x", [/^a/]]}
  }
}])
{_id: 0, matches: false}
{_id: 1, matches: true}
// Note the intentional inconsistency.
> db.foo.find({x: {$in: [/^a/]}})
{_id: 0, x: "aaa"}
{_id: 1, x: /^a/}

Notes

  • Should result in the same values as a $in in a MatchExpression (except with regexes).
  • Should not do regex matching if the values in the array are regexes.
  • This is different from what the query system does, a query predicate of {x: {$in: [/^a/]} will find strings which start with "a". This is arguably a bug in query, and will not be duplicated here.

Errors

  • If the second expression is not an array.
  • If there are not two arguments passed to the expression.

Old Description
Currently expressions like $eq, $ne, $gt, etc are supported but there is no $in available to test set membership.


Generated at Thu Feb 08 07:58:38 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.