python - 根据 mongoengine 中的另一个字段更新字段
问题描述
我使用mongoengine
(这是 ORM 包装器pymongo
)。
url
文档中的字段包含一个相对路径(如/abc/blog/12/01
),我想批量更新一个fullUrl
字段,所以它看起来像https://mywebsite.com/abc/blog/12/01
在 Django ORM 中很容易使用update(newfield=F('oldfield')
. 有没有办法在 中做同样的事情mongoengine
?
class ArticleLink(Document):
url = StringField()
fullUrl=URLField()
所以我怀疑这样的事情是行不通的:
ArticleLink.objects.update(fullUrl=Q('url'))
解决方案
好的,抱歉,这比我想象的要简单得多:
HEAD = 'https://example.com'
pipeline = [
{"$set": {"fullUrl": {"$concat": [HEAD, "$url"]}}}
]
data = ArticleLink.objects().aggregate(*pipeline)