Я пытаюсь понять, как использовать uMon go с монитором, и у меня возникла проблема. Я не могу заставить объект документа uMon go возвращать что-либо кроме None, и я уверен, что это что-то очевидное, я просто продолжаю пропускать. Если у кого-то есть какие-либо предложения или я могу что-то увидеть, но я не могу сообщить об этом.
Строка подключения была очищена, в моем коде это не совсем так.
Вот тестовый файл Я использую:
import asyncio, pprint
from motor.motor_asyncio import AsyncIOMotorClient
from umongo import Document, Instance, fields
# plain motor connection
client = AsyncIOMotorClient('mongodb+srv://user:password@atlas.azure.mongodb.net')
db = client.my_database
# umongo motor connection
instance = Instance(db)
# umongo document object
@instance.register
class User(Document):
nickname = fields.StringField()
gender = fields.StringField()
class Meta:
collection = db.test
# plain motor query function
async def plain_motor_find_one():
document = await db.test.find_one({'nickname': 'rook'}) # this works
pprint.pprint(document)
# umongo motor query function
async def umongo_motor_find_one():
document = await User.find_one({'nickname': 'rook'}) # this does not and returns None
pprint(document)
# grab event loop
loop = asyncio.get_event_loop()
# make our calls
loop.run_until_complete(plain_motor_find_one())
loop.run_until_complete(umongo_motor_find_one())
И вот как выглядит объект в моей коллекции database.test:
{
"_id" : ObjectId("5e8b9c205ac19a8a91658f17"),
"nickname" : "rook",
"gender" : "male"
}
Большое спасибо.