【问题标题】:update field based on another field in mongoengine根据 mongoengine 中的另一个字段更新字段
【发布时间】:2021-04-16 03:35:57
【问题描述】:

我使用mongoengine(这是pymongo 的ORM 包装器)。 文档中的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'))

【问题讨论】:

    标签: python mongodb pymongo mongoengine


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多