Не удается найти запись в 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 ответ
Я понял. Я пытался найти идентификатор в несуществующей базе данных. Упс.