PYTHON-5596 Fix return type for distinct methods (#2576)
(cherry picked from commit a2e39ada00)
This commit is contained in:
parent
039c35ba63
commit
1d5f2af35d
@ -3150,7 +3150,7 @@ class AsyncCollection(common.BaseObject, Generic[_DocumentType]):
|
||||
comment: Optional[Any] = None,
|
||||
hint: Optional[_IndexKeyHint] = None,
|
||||
**kwargs: Any,
|
||||
) -> list[str]:
|
||||
) -> list[Any]:
|
||||
"""Get a list of distinct values for `key` among all documents
|
||||
in this collection.
|
||||
|
||||
|
||||
@ -1064,7 +1064,7 @@ class AsyncCursor(Generic[_DocumentType]):
|
||||
"""Explicitly close / kill this cursor."""
|
||||
await self._die_lock()
|
||||
|
||||
async def distinct(self, key: str) -> list[str]:
|
||||
async def distinct(self, key: str) -> list[Any]:
|
||||
"""Get a list of distinct values for `key` among all documents
|
||||
in the result set of this query.
|
||||
|
||||
|
||||
@ -3143,7 +3143,7 @@ class Collection(common.BaseObject, Generic[_DocumentType]):
|
||||
comment: Optional[Any] = None,
|
||||
hint: Optional[_IndexKeyHint] = None,
|
||||
**kwargs: Any,
|
||||
) -> list[str]:
|
||||
) -> list[Any]:
|
||||
"""Get a list of distinct values for `key` among all documents
|
||||
in this collection.
|
||||
|
||||
|
||||
@ -1062,7 +1062,7 @@ class Cursor(Generic[_DocumentType]):
|
||||
"""Explicitly close / kill this cursor."""
|
||||
self._die_lock()
|
||||
|
||||
def distinct(self, key: str) -> list[str]:
|
||||
def distinct(self, key: str) -> list[Any]:
|
||||
"""Get a list of distinct values for `key` among all documents
|
||||
in the result set of this query.
|
||||
|
||||
|
||||
@ -69,7 +69,7 @@ sys.path[0:0] = [""]
|
||||
|
||||
from test import IntegrationTest, PyMongoTestCase, client_context
|
||||
|
||||
from bson import CodecOptions, decode, decode_all, decode_file_iter, decode_iter, encode
|
||||
from bson import CodecOptions, ObjectId, decode, decode_all, decode_file_iter, decode_iter, encode
|
||||
from bson.raw_bson import RawBSONDocument
|
||||
from bson.son import SON
|
||||
from pymongo import ASCENDING, MongoClient
|
||||
@ -141,6 +141,32 @@ class TestPymongo(IntegrationTest):
|
||||
docs = to_list(cursor)
|
||||
self.assertTrue(docs)
|
||||
|
||||
def test_distinct(self) -> None:
|
||||
self.coll.delete_many({})
|
||||
self.coll.insert_many(
|
||||
[
|
||||
{"_id": None},
|
||||
{"_id": 0},
|
||||
{"_id": ""},
|
||||
{"_id": ObjectId()},
|
||||
{"_id": True},
|
||||
]
|
||||
)
|
||||
|
||||
def collection_distinct(
|
||||
collection: Collection,
|
||||
) -> list[None | int | str | ObjectId | bool]:
|
||||
return collection.distinct("_id")
|
||||
|
||||
def cursor_distinct(
|
||||
collection: Collection,
|
||||
) -> list[None | int | str | ObjectId | bool]:
|
||||
cursor = collection.find()
|
||||
return cursor.distinct("_id")
|
||||
|
||||
collection_distinct(self.coll)
|
||||
cursor_distinct(self.coll)
|
||||
|
||||
@only_type_check
|
||||
def test_bulk_write(self) -> None:
|
||||
self.coll.insert_one({})
|
||||
|
||||
Loading…
Reference in New Issue
Block a user