Skip to content

Commit 37a957c

Browse files
committed
add untypedPipeline type for pipelines that reference foreign collections
1 parent 943deb1 commit 37a957c

File tree

7 files changed

+136
-9
lines changed

7 files changed

+136
-9
lines changed

generator/config/schema.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@
115115
"query",
116116
"fieldQuery",
117117
"pipeline",
118+
"untypedPipeline",
118119
"window",
119120
"expression",
120121
"expressionMap",

generator/config/stage/lookup.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ arguments:
3535
Specifies variables to use in the pipeline stages. Use the variable expressions to access the fields from the joined collection's documents that are input to the pipeline.
3636
- name: pipeline
3737
type:
38-
- pipeline
38+
- untypedPipeline
3939
optional: true
4040
description: |
4141
Specifies the pipeline to run on the joined collection. The pipeline determines the resulting documents from the joined collection. To return all documents, specify an empty pipeline [].

generator/config/stage/merge.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ arguments:
3030
- name: whenMatched
3131
type:
3232
- whenMatched
33-
- pipeline
33+
- untypedPipeline
3434
optional: true
3535
description: |
3636
The behavior of $merge if a result document and an existing document in the collection have the same value for the specified on field(s).

generator/config/stage/project.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ arguments:
1010
- name: specification
1111
type:
1212
- expression
13+
- expressionMap
1314
variadic: object
1415
tests:
1516
- name: Include Specific Fields in Output Documents

generator/config/stage/set.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,7 @@ tests:
125125
pipeline:
126126
- $set:
127127
quizAverage:
128-
$avg:
129-
- $quiz
128+
$avg: $quiz
130129
schema:
131130
scores:
132131
_id:

generator/config/stage/unionWith.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ arguments:
1515
The collection or view whose pipeline results you wish to include in the result set.
1616
- name: pipeline
1717
type:
18-
- pipeline
18+
- untypedPipeline
1919
optional: true
2020
description: |
2121
An aggregation pipeline to apply to the specified coll.

generator/config/stage/vectorSearch.yaml

Lines changed: 130 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,16 +100,142 @@ tests:
100100
score:
101101
$meta: vectorSearchScore
102102
schema:
103-
TestCollection:
103+
movies:
104+
_id:
105+
types:
106+
- bsonType: Document
107+
fields:
108+
$oid:
109+
types:
110+
- bsonType: String
111+
title:
112+
types:
113+
- bsonType: String
114+
year:
115+
types:
116+
- bsonType: Document
117+
fields:
118+
$numberInt:
119+
types:
120+
- bsonType: String
121+
runtime:
122+
types:
123+
- bsonType: Document
124+
fields:
125+
$numberInt:
126+
types:
127+
- bsonType: String
128+
released:
129+
types:
130+
- bsonType: Document
131+
fields:
132+
$date:
133+
types:
134+
- bsonType: Document
135+
fields:
136+
$numberLong:
137+
types:
138+
- bsonType: String
139+
poster:
140+
types:
141+
- bsonType: String
104142
plot:
105143
types:
106144
- bsonType: String
107-
title:
145+
fullplot:
108146
types:
109147
- bsonType: String
110-
score:
148+
lastupdated:
111149
types:
112-
- bsonType: Number
150+
- bsonType: String
151+
type:
152+
types:
153+
- bsonType: String
154+
directors:
155+
types:
156+
- bsonType: Array
157+
types:
158+
- bsonType: String
159+
imdb:
160+
types:
161+
- bsonType: Document
162+
fields:
163+
rating:
164+
types:
165+
- bsonType: Document
166+
fields:
167+
$numberDouble:
168+
types:
169+
- bsonType: String
170+
votes:
171+
types:
172+
- bsonType: Document
173+
fields:
174+
$numberInt:
175+
types:
176+
- bsonType: String
177+
id:
178+
types:
179+
- bsonType: Document
180+
fields:
181+
$numberInt:
182+
types:
183+
- bsonType: String
184+
cast:
185+
types:
186+
- bsonType: Array
187+
types:
188+
- bsonType: String
189+
countries:
190+
types:
191+
- bsonType: Array
192+
types:
193+
- bsonType: String
194+
genres:
195+
types:
196+
- bsonType: Array
197+
types:
198+
- bsonType: String
199+
tomatoes:
200+
types:
201+
- bsonType: Document
202+
fields:
203+
viewer:
204+
types:
205+
- bsonType: Document
206+
fields:
207+
rating:
208+
types:
209+
- bsonType: Document
210+
fields:
211+
$numberDouble:
212+
types:
213+
- bsonType: String
214+
numReviews:
215+
types:
216+
- bsonType: Document
217+
fields:
218+
$numberInt:
219+
types:
220+
- bsonType: String
221+
lastUpdated:
222+
types:
223+
- bsonType: Document
224+
fields:
225+
$date:
226+
types:
227+
- bsonType: Document
228+
fields:
229+
$numberLong:
230+
types:
231+
- bsonType: String
232+
num_mflix_comments:
233+
types:
234+
- bsonType: Document
235+
fields:
236+
$numberInt:
237+
types:
238+
- bsonType: String
113239
- name: ENN
114240
link: https://www.mongodb.com/docs/atlas/atlas-vector-search/vector-search-stage/#enn-example
115241
pipeline:

0 commit comments

Comments
 (0)