@@ -495,44 +495,9 @@ def test_search_restore_sample_database(mdb: MongoDB, tools_pod: mongodb_tools_p
495495@mark .e2e_search_sharded_external_mongod_single_mongot
496496def test_search_shard_collections (mdb : MongoDB ):
497497 search_tester = get_admin_search_tester (mdb , use_ssl = True )
498- client = search_tester .client
499- admin_db = client .admin
500- sample_mflix_db = client ["sample_mflix" ]
501-
502- # Enable sharding on database
503- try :
504- admin_db .command ("enableSharding" , "sample_mflix" )
505- logger .info ("Sharding enabled on sample_mflix database" )
506- except pymongo .errors .OperationFailure as e :
507- if (
508- "already enabled" in str (e ) or e .code == 23 or e .code == 59
509- ): # AlreadyInitialized or CommandNotFound (MongoDB 8.0+)
510- logger .info ("Sharding already enabled on sample_mflix" )
511- else :
512- raise
513-
514- # Shard movies collection
515- try :
516- sample_mflix_db ["movies" ].create_index ([("_id" , pymongo .HASHED )])
517- admin_db .command ("shardCollection" , "sample_mflix.movies" , key = {"_id" : "hashed" })
518- logger .info ("movies collection sharded" )
519- except pymongo .errors .OperationFailure as e :
520- if "already sharded" in str (e ) or e .code == 20 : # AlreadyInitialized for sharding
521- logger .info ("movies collection already sharded" )
522- else :
523- raise
524-
525- # Shard embedded_movies collection
526- try :
527- sample_mflix_db ["embedded_movies" ].create_index ([("_id" , pymongo .HASHED )])
528- admin_db .command ("shardCollection" , "sample_mflix.embedded_movies" , key = {"_id" : "hashed" })
529- logger .info ("embedded_movies collection sharded" )
530- except pymongo .errors .OperationFailure as e :
531- if "already sharded" in str (e ) or e .code == 20 : # AlreadyInitialized for sharding
532- logger .info ("embedded_movies collection already sharded" )
533- else :
534- raise
535-
498+ search_tester .enable_sharding ("sample_mflix" )
499+ search_tester .shard_collection ("sample_mflix" , "movies" )
500+ search_tester .shard_collection ("sample_mflix" , "embedded_movies" )
536501 # Wait for balancer to distribute chunks
537502 # TODO: execute mdb command to wait for the balancer
538503 time .sleep (10 )
@@ -559,15 +524,11 @@ def test_search_assert_search_query(mdb: MongoDB):
559524
560525 def execute_search ():
561526 try :
562- results = list (
563- search_tester .client ["sample_mflix" ]["movies" ].aggregate (
564- [
565- {"$search" : {"index" : "default" , "text" : {"query" : "star wars" , "path" : "title" }}},
566- {"$limit" : 10 },
567- {"$project" : {"_id" : 0 , "title" : 1 , "score" : {"$meta" : "searchScore" }}},
568- ]
569- )
570- )
527+ results = search_tester .search ("sample_mflix" , "movies" , [
528+ {"$search" : {"index" : "default" , "text" : {"query" : "star wars" , "path" : "title" }}},
529+ {"$limit" : 10 },
530+ {"$project" : {"_id" : 0 , "title" : 1 , "score" : {"$meta" : "searchScore" }}},
531+ ])
571532
572533 result_count = len (results )
573534 logger .info (f"Search returned { result_count } results" )
@@ -587,26 +548,20 @@ def execute_search():
587548@mark .e2e_search_sharded_external_mongod_single_mongot
588549def test_search_verify_results_from_all_shards (mdb : MongoDB ):
589550 search_tester = get_user_search_tester (mdb , use_ssl = True )
590- movies_collection = search_tester .client ["sample_mflix" ]["movies" ]
591-
592551 # Get total document count
593- total_docs = movies_collection .count_documents ({})
552+ total_docs = search_tester . client [ "sample_mflix" ][ "movies" ] .count_documents ({})
594553 logger .info (f"Total documents in collection: { total_docs } " )
595554
596555 # Execute wildcard search to get all documents
597- results = list (
598- movies_collection .aggregate (
599- [
600- {
601- "$search" : {
602- "index" : "default" ,
603- "wildcard" : {"query" : "*" , "path" : "title" , "allowAnalyzedField" : True },
604- }
605- },
606- {"$project" : {"_id" : 0 , "title" : 1 }},
607- ]
608- )
609- )
556+ results = search_tester .search ("sample_mflix" , "movies" , [
557+ {
558+ "$search" : {
559+ "index" : "default" ,
560+ "wildcard" : {"query" : "*" , "path" : "title" , "allowAnalyzedField" : True },
561+ }
562+ },
563+ {"$project" : {"_id" : 0 , "title" : 1 }},
564+ ])
610565
611566 search_count = len (results )
612567 logger .info (f"Search through mongos returned { search_count } documents" )
0 commit comments