[CSHARP-3479] LINQ3: Contains should use $elemMatch Created: 15/Mar/21  Updated: 28/Oct/23  Resolved: 04/Oct/21

Status: Closed
Project: C# Driver
Component/s: LINQ3
Affects Version/s: None
Fix Version/s: 2.14.0

Type: Task Priority: Major - P3
Reporter: Robert Stam Assignee: Robert Stam
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by CSHARP-3473 LINQ3: Get PredicateTranslatorTests t... Closed
Epic Link: CSHARP-2608

 Description   

Translate:

document.A.Contains(c) 

to:

{ A : { $elemMatch : { $eq : c } } } 

instead of:

{ A : c } 

To prevent certain transformations that apply to `{ A : c }` (but not for this `Contains` case) from being applied.

During final rendering (when no further transformations to the AST will occur) the first from can be rendered as the second form.



 Comments   
Comment by Robert Stam [ 15/Mar/21 ]

Done but not reviewed

Generated at Wed Feb 07 21:45:24 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.