PyObjectID преобразуется в строку при вставке в MongoDBPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 PyObjectID преобразуется в строку при вставке в MongoDB

Сообщение Anonymous »

Код: Выделить всё

from typing import Any
from bson import ObjectId
from pydantic_core import core_schema

class PyObjectId(ObjectId):
"""To create a pydantic Object that validates bson ObjectID"""

@classmethod
def __get_pydantic_core_schema__(cls, _source_type: Any, _handler: Any) -> core_schema.CoreSchema:
return core_schema.json_or_python_schema(
json_schema=core_schema.str_schema(),
python_schema=core_schema.union_schema(
[
core_schema.is_instance_schema(ObjectId),
core_schema.chain_schema(
[
core_schema.str_schema(),
core_schema.no_info_plain_validator_function(cls.validate),
]
),
]
),
serialization=core_schema.plain_serializer_function_ser_schema(lambda x: str(x)),  # noqa W0108
)

@classmethod
def validate(cls, value) -> ObjectId:
if not ObjectId.is_valid(value):
raise ValueError("Invalid ObjectId")
return ObjectId(value)

class GoalRecordStored(BaseModel):
"""Goal Record Model."""

player_id: PyObjectId = Field(..., validation_alias="Player ID")
date: datetime = Field(validation_alias="Date")
Привет
Я пытаюсь отправить player_id как ObjectId, но не могу этого сделать, и он сохраняется в MongoDB как строку, а не ObjectId. Как я могу это изменить?
Я пробовал много изменений в классе, но это не помогло. Я пытался передать player_id разными способами, но он всегда сохранялся в виде строки, а не так, как мне хотелось.

Подробнее здесь: https://stackoverflow.com/questions/787 ... to-mongodb
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • PyObjectID преобразуется в строку при вставке в MongoDB
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Ошибка проверки сертификата SSL при очистке веб-сайта и вставке данных в MongoDB
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Почему это ложное значение преобразуется в пустую строку вместо 0?
    Anonymous » » в форуме Php
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Поле перечисления Pydantic не преобразуется в строку
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Ошибка: можно объединить только строку (не «NoneType») с строкой в ​​Python при вставке данных в SQL Server.
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»