【问题标题】:PyMODM - Find Document(s)PyMODM - 查找文档
【发布时间】:2017-05-05 16:31:10
【问题描述】:

我在 Django CRUD 应用程序中使用 PyModm 作为 MongoDB 的 ORM 层。

我创建了一个 MongoModel,如下所示:

class Book(MongoModel):
    title = fields.CharField(primary_key=True)
    author = fields.CharField()

要创建和更新文档,pymodm API 非常好,但是我找不到一种简单的方法来检索一个或多个文档,因为 Book.object.all() 返回一个似乎只能 Json 序列化的 QuerySet迭代它时。

所以我找到的解决方法是

books = []
for book in Book.objects.all():
    books.append({
        'title': book.title,
        'author': contact.author
    })
return JsonResponse(books)

通过主键检索一本书:

for book in Book.objects.raw({'_id': title}):
    book = {
        'author': book.author,
        'title': book.title
    }
return JsonResponse(book)

但是,这似乎不是一个非常充分也不漂亮的方式。有没有更好的方法?

【问题讨论】:

    标签: django mongodb pymongo pymodm


    【解决方案1】:

    也许values() 会有所帮助:

    books = list(Book.objects.values().all())
    book = Book.objects.values().get({'_id': user_id})
    

    【讨论】:

    • 是的,这很棒,它可以工作。它还返回一个带有 _cls 属性(project.mongoModels.Book)的字典,但我看到您可以将其过滤掉,如下所示: Book.objects.only('title', 'author').values().get({ '_id': 'asd'})
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 2015-05-03
    • 2016-07-01
    • 2020-08-09
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多