From 7295fe17b7e4182ba95367b648a4dc32666f3a4d Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 21 Aug 2024 14:28:55 -0500 Subject: [PATCH] PYTHON-4226 Add Projection with aggregation expressions example (#1803) --- test/test_examples.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/test/test_examples.py b/test/test_examples.py index 02b178586..296283db2 100644 --- a/test/test_examples.py +++ b/test/test_examples.py @@ -866,6 +866,38 @@ class TestSampleShellCommands(IntegrationTest): ) # End Aggregation Example 4 + @client_context.require_version_min(4, 4) + def test_aggregate_projection_example(self): + db = self.db + + # Start Aggregation Projection Example 1 + db.inventory.find( + {}, + { + "_id": 0, + "item": 1, + "status": { + "$switch": { + "branches": [ + {"case": {"$eq": ["$status", "A"]}, "then": "Available"}, + {"case": {"$eq": ["$status", "D"]}, "then": "Discontinued"}, + ], + "default": "No status found", + } + }, + "area": { + "$concat": [ + {"$toString": {"$multiply": ["$size.h", "$size.w"]}}, + " ", + "$size.uom", + ] + }, + "reportNumber": {"$literal": 1}, + }, + ) + + # End Aggregation Projection Example 1 + def test_commands(self): db = self.db db.restaurants.insert_one({})