Использование Motorola с uMon go :: Всегда становится пустым - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь понять, как использовать 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"
}

Большое спасибо.

...