internal 1.1.35.1__py3-none-any.whl → 1.1.35.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of internal might be problematic. Click here for more details.

@@ -48,10 +48,6 @@ class InternalBaseDocument(Document):
48
48
  continue
49
49
  final_sort.append((cls.id, pymongo.ASCENDING))
50
50
 
51
- pymongo_kwargs = {}
52
- if exclude_fields:
53
- pymongo_kwargs['projection'] = {field: 0 for field in exclude_fields}
54
-
55
51
  total_num = await cls.find(*final_query, ignore_cache=ignore_cache, fetch_links=fetch_links).sort(
56
52
  *final_sort).count()
57
53
 
@@ -63,9 +59,15 @@ class InternalBaseDocument(Document):
63
59
  else:
64
60
  page_no = max(1, min(page_no, total_pages))
65
61
 
66
- page_data = await cls.find(*final_query, ignore_cache=ignore_cache, fetch_links=fetch_links,
67
- **pymongo_kwargs).sort(*final_sort).limit(page_size).skip(
68
- (page_no - 1) * page_size).to_list()
62
+ # 建立查詢物件用於取得分頁資料
63
+ data_query = cls.find(*final_query, ignore_cache=ignore_cache, fetch_links=fetch_links)
64
+
65
+ # 如果有指定要排除的欄位,使用 project() 方法
66
+ if exclude_fields:
67
+ projection = {field: 0 for field in exclude_fields}
68
+ data_query = data_query.project(projection)
69
+
70
+ page_data = await data_query.sort(*final_sort).limit(page_size).skip((page_no - 1) * page_size).to_list()
69
71
 
70
72
  return page_no, page_size, total_num, page_data
71
73
 
@@ -114,14 +116,15 @@ class InternalBaseDocument(Document):
114
116
  continue
115
117
  final_sort.append((cls.id, pymongo.ASCENDING))
116
118
 
117
- # 準備 pymongo 的 projection 參數
118
- pymongo_kwargs = {}
119
- if exclude_fields:
120
- pymongo_kwargs['projection'] = {field: 0 for field in exclude_fields}
119
+ # 建立查詢物件
120
+ query_obj = cls.find(*final_query, ignore_cache=ignore_cache, fetch_links=fetch_links)
121
121
 
122
- data = await cls.find(*final_query, ignore_cache=ignore_cache, fetch_links=fetch_links,
123
- **pymongo_kwargs).sort(*final_sort).to_list()
122
+ # 如果有指定要排除的欄位,使用 project() 方法
123
+ if exclude_fields:
124
+ projection = {field: 0 for field in exclude_fields}
125
+ query_obj = query_obj.project(projection)
124
126
 
127
+ data = await query_obj.sort(*final_sort).to_list()
125
128
  return data
126
129
 
127
130
  def model_dump(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: internal
3
- Version: 1.1.35.1
3
+ Version: 1.1.35.2
4
4
  Summary:
5
5
  Author: Ray
6
6
  Author-email: ray@cruisys.com
@@ -31,10 +31,10 @@ internal/interface/base_interface.py,sha256=3YaVjIgLi_pZpLk5SEIk8WVkuICM8qPavT8r
31
31
  internal/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
32
  internal/middleware/log_request.py,sha256=OFwWnGfzXnllcQsBHolAWVsahXKoEhw3OQ1YWOm7RHM,2087
33
33
  internal/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
- internal/model/base_model.py,sha256=znEpL1ztwvALWUhhTBTDdFQi_AUg204l_Ovm0BjOKtI,5992
34
+ internal/model/base_model.py,sha256=fgqdGrtPLyqAtQU8RQb9hLxvarDuubFgv2uEFczmBbw,6150
35
35
  internal/model/operate.py,sha256=QSM6yXYXpJMwrqkUGEWZLrEBaUgqHwVHY_Fi4S42hKc,3190
36
36
  internal/utils.py,sha256=wK1QumW1AaWE1ga2-WcDH2rtXRr2hSLwXzy-iI5dTzY,3962
37
37
  internal/validator_utils.py,sha256=CqjaVFoAu5MqvBG_AkTP-r7AliWawtUWB851USj4moI,1519
38
- internal-1.1.35.1.dist-info/METADATA,sha256=mlqCPVT97ABLaQ7uR5rOD9VcfchwffZOyh6UxQFCY4Y,941
39
- internal-1.1.35.1.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
40
- internal-1.1.35.1.dist-info/RECORD,,
38
+ internal-1.1.35.2.dist-info/METADATA,sha256=-wMPKHaGDzPkf7fUi2xXlyUmDTZQK7BeYFSVusCevYQ,941
39
+ internal-1.1.35.2.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
40
+ internal-1.1.35.2.dist-info/RECORD,,