【问题标题】:Does Mongoengine allow pull from <variable>?Mongoengine 是否允许从 <variable> 拉取?
【发布时间】:2021-12-30 16:03:07
【问题描述】:

我有一些如下所示的拉取查询:

Site.objects(siteid).update_one(pull__somelist__refid=myid)  

我想通过将 'somelist' 设为变量来重用此代码 - 如下所示:

listvar = 'somelist'
Site.objects(siteid).update_one(pull__<listvar>__refid=myid)  

我尝试了各种包装器,例如 [listvar](listvar),但均未成功。

有没有办法将变量值注入到查询中?

【问题讨论】:

    标签: pymongo mongoengine


    【解决方案1】:

    您应该能够为此滥用 kwarg 表示法

    myvar = "some_var"
    funky_kwarg = {f"pull__{myvar}__refid": myid}
    Site.objects(siteid).update_one(**funky_kwarg)  
    

    【讨论】:

    • 不错! Fstring 到 Dict 到 kwarg。这让我可以用两行代码替换 12 行 if、elif 代码
    • 乐于助人:D
    猜你喜欢
    • 2022-12-21
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多