首页 > 解决方案 > 根据 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'))

标签: pythonmongodbpymongomongoengine

解决方案


好的,抱歉,这比我想象的要简单得多:

HEAD = 'https://example.com'
pipeline = [
    {"$set": {"fullUrl": {"$concat": [HEAD, "$url"]}}}
]
data = ArticleLink.objects().aggregate(*pipeline)



推荐阅读