gpt4 book ai didi

python - 在引用字段列表上使用 only() 进行 Mongoengine 查询

转载 作者:可可西里 更新时间:2023-11-01 09:45:58 28 4
gpt4 key购买 nike

我有两个文件

class Book(Document):
title = StringField()
publication = StringField()
no_of_pages = IntField()
desc = StringField()
reviews = ListField(ReferenceField(Review))
...

class Author(Document):
name = StringField()
books = ListField(ReferenceField(Book))
desc = StringField()
...

我想编写一个查询,根据作者的姓名查找他书中的所有图 block 。

如您所见,两个文档都有大量的列,我不想得到所有列。因此我的必填字段是

`req_fields = ['name', 'books']`

我查询如下

author = Author.objects.filter(name='xyz').only(*req_fields)

如果我打印 author 对象,我得到:

{
_id=ObjectId('50fcf9682c345a0427000019'),
_cls='Author',
name='xyz',
books=[DBRef('Book', ObjectId('50fcd9682c441e0427000019')),
DBRef('Book', ObjectId('50fcd9682c361e0427000020'))]
}

我希望查询返回标题字符串列表而不是书籍对象列表。我该如何修改?这样结果对象就像下面这样

{
_id=ObjectId('50fcf9682c345a0427000019'),
_cls='Author',
name='xyz',
books=['Title One', 'Title Two']
}

最佳答案

如果您需要取消引用书籍,请调用select_related 例如:

author = Author.objects.filter(name='xyz').only(*req_fields).select_related()

关于python - 在引用字段列表上使用 only() 进行 Mongoengine 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14601321/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com