diff --git a/generator/config/expression/createObjectId.yaml b/generator/config/expression/createObjectId.yaml new file mode 100644 index 000000000..bab85d7f7 --- /dev/null +++ b/generator/config/expression/createObjectId.yaml @@ -0,0 +1,17 @@ +# $schema: ../schema.json +name: $createObjectId +link: 'https://www.mongodb.com/docs/manual/reference/operator/aggregation/createObjectId/' +type: + - resolvesToObjectId +encode: object +description: | + Returns a random object ID +tests: + - + name: 'Example' + link: 'https://www.mongodb.com/docs/manual/reference/operator/aggregation/createObjectId/#example' + pipeline: + - + $project: + objectId: + $createObjectId: {} diff --git a/src/Builder/Expression/CreateObjectIdOperator.php b/src/Builder/Expression/CreateObjectIdOperator.php new file mode 100644 index 000000000..eef57b3ca --- /dev/null +++ b/src/Builder/Expression/CreateObjectIdOperator.php @@ -0,0 +1,28 @@ +assertSamePipeline(Pipelines::CreateObjectIdExample, $pipeline); + } +} diff --git a/tests/Builder/Expression/Pipelines.php b/tests/Builder/Expression/Pipelines.php index f84d00984..ab995bf68 100644 --- a/tests/Builder/Expression/Pipelines.php +++ b/tests/Builder/Expression/Pipelines.php @@ -910,6 +910,23 @@ enum Pipelines: string ] JSON; + /** + * Example + * + * @see https://www.mongodb.com/docs/manual/reference/operator/aggregation/createObjectId/#example + */ + case CreateObjectIdExample = <<<'JSON' + [ + { + "$project": { + "objectId": { + "$createObjectId": {} + } + } + } + ] + JSON; + /** * Add a Future Date *