code: def remove_empty_objects(document, key_prefix=""):
      # Base case: if the document is not a dictionary, return an empty list
      if not isinstance(document, dict):
          return []
  
      # List to store keys associated with empty objects
      empty_keys = []
  
      for key, value in document.items():
          # Generate the full key path
          full_key = f"{key_prefix}.{key}" if key_prefix else key
  
          # If the value is a dictionary, recursively check for empty objects
          if isinstance(value, dict):
              # If the dictionary is empty, store its key
              if not value:
                  empty_keys.append(full_key)
              else:
                  empty_keys.extend(
                      remove_empty_objects(value, full_key)
                  )
  
      return empty_keys
  
file_path: ivy/scripts/setup_tests/synchronize_db.py
imports: import sys
  from pymongo import MongoClient
  from get_all_tests import get_all_tests
label_desc: Use image node_id 4 for calling a global function with example usage: remove_empty_objects(document, key_prefix) and returns: empty_keys, list