Skip to content

Commit 2628950

Browse files
authored
Support new search operators and argument (#1894)
1 parent f1ce3a6 commit 2628950

11 files changed

Lines changed: 423 additions & 6 deletions

src/Builder/Search/FactoryTrait.php

Lines changed: 30 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Builder/Search/HasAncestorOperator.php

Lines changed: 49 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Builder/Search/HasRootOperator.php

Lines changed: 40 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Builder/Stage/FactoryTrait.php

Lines changed: 8 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Builder/Stage/FluentFactoryTrait.php

Lines changed: 8 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Builder/Stage/SearchMetaStage.php

Lines changed: 20 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Builder/Stage/SearchStage.php

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace MongoDB\Tests\Builder\Search;
6+
7+
use MongoDB\Builder\Pipeline;
8+
use MongoDB\Builder\Search;
9+
use MongoDB\Builder\Stage;
10+
use MongoDB\Tests\Builder\PipelineTestCase;
11+
12+
use function MongoDB\object;
13+
14+
/**
15+
* Test hasAncestor search
16+
*/
17+
class HasAncestorOperatorTest extends PipelineTestCase
18+
{
19+
public function testExample(): void
20+
{
21+
$pipeline = new Pipeline(
22+
Stage::search(
23+
Search::hasAncestor(
24+
ancestorPath: 'funding_rounds',
25+
operator: Search::equals(
26+
path: 'funding_rounds.funded_year',
27+
value: 2005,
28+
),
29+
),
30+
returnScope: object(path: 'funding_rounds.investments'),
31+
returnStoredSource: true,
32+
),
33+
);
34+
35+
$this->assertSamePipeline(Pipelines::HasAncestorExample, $pipeline);
36+
}
37+
}

0 commit comments

Comments
 (0)