Не удается найти запись в MongoDB с пользовательскими _id

У меня есть база данных MongoDB, в которой я перезаписал поле вручную, используя некоторые сгенерированные теги (дубликаты не проблема).

Проблема в том, что я пытаюсь find_oneпоиск по _idно он постоянно возвращается Noneи я не могу понять это для жизни меня. Любая помощь будет оценена по достоинству.

Вот код, который у меня есть до сих пор:

      async def update(self):
        #self.input is part of my class variables and comes in as a string
        client = AsyncIOMotorClient(sensitive_data.mongoDB_server_address) #sensitive data is another python file with the server address/usernae/password
        db = client.Database
        accounts = db.accounts
        print(type(self.input)) #this prints string
        account = await accounts.find_one({'_id':self.input})
        print(account) #this prints none
        return account

Редактировать:

Я нашел некоторую информацию о документации pyMongo о ObjectID. Я попытался реализовать его с помощью этого кода:

      from bson.objectid import ObjectId

async def update(self):
        #self.input is part of my class variables and comes in as a string
        client = AsyncIOMotorClient(sensitive_data.mongoDB_server_address) #sensitive data is another python file with the server address/usernae/password
        db = client.Database
        accounts = db.accounts
        print(type(self.input)) #this prints string
        account = await accounts.find_one({'_id':ObjectID(self.input)})
        print(account) #this prints none
        return account

Но получите эту трассировку: bson.errors.InvalidId: 'mystring' is not a valid ObjectId, it must be a 12-byte input or a 24-character hex string

1 ответ

Я понял. Я пытался найти идентификатор в несуществующей базе данных. Упс.

Другие вопросы по тегам