$addFields 用于在 Python 中使用 MongoDB 的特定条目

Posted

技术标签:

【中文标题】$addFields 用于在 Python 中使用 MongoDB 的特定条目【英文标题】:$addFields for specific entry using MongoDB in Python 【发布时间】:2021-09-02 07:55:51 【问题描述】:

我正在使用 Python 中的 pymongo 库来更新我的 MongoDB 中的特定条目,特别是使用 db.update_one() 函数,该函数以前与聚合管道 $set 一起使用,但现在在使用 $addFields 时失败。我正在尝试插入条目: 'Client Facing': ['No'] 进入对象:


    'Content Format': ['Presentation'], 
    'Category': ['Systems w/TPS'], 
    'Offering Market': ['Enterprise Linux Market'], 
    'Offering Portfolio': ['Enterprise Linux'], 
    'Offering Name': ['HANA excl L Systems - POWER9 H924 Scale-Out'], 
    'Keywords': ['SAP'], 
    'Language': ['English'], 
    'Additional Information': ['prepare-atl'], 
    'Organization Owner': ['Technology'], 
    'Brand': ['Cognitive Systems'], 
    'Content Owner Group': ['Technology - Systems']

所以我使用了带有参数的 update_one():'seismic_id': 12345(这是过滤器),并且

'$addFields': 'seismic_properties_obj.Client Facing': ['No']

但是,当我这样做时,它会失败并出现错误:

pymongo.errors.WriteError: Unknown modifier: $addFields. Expected a valid update modifier or pipeline-style update specified as an array, full error: 'index': 0, 'code': 9, 'errmsg': 'Unknown modifier: $addFields. Expected a valid update modifier or pipeline-style update specified as an array'

【问题讨论】:

你只能在聚合管道的更新中使用 $addFields,你能显示你的整个查询吗? @turivishal 我的完整查询只是 update_one 方法,看起来像:``` DB['assets'].update_one('seismic_id': 12345, '$addFields': '地震属性_obj.Client Facing':['No'])``` 正如我在第一个 comnet 中所说的 $addFields 是聚合阶段,您可以在此处使用 $set。 【参考方案1】:

你可以使用下面的sn-p

DB['assets'].update_one(
    'seismic_id': 12345,
    '$set':
        'seismic_properties_obj.Client Facing': 'No'
    
)

这将找到记录seismic_id = 12345,然后添加属性seismic_properties.Client Facing并将其设置为'No'

注意:在这种情况下,$addField 不是有效的运算符,因为它在聚合框架中使用。相反,使用$set 允许您添加/更新特定密钥,而无需更新整个文档。

【讨论】:

以上是关于$addFields 用于在 Python 中使用 MongoDB 的特定条目的主要内容,如果未能解决你的问题,请参考以下文章

Python学习第87天(jQuery属性操作循环方法)

Python学习第87天(jQuery属性操作循环方法)

如何,使用 JQUERY .EACH() 但不用于元素,用于变量

用于文档预览的 Jquery 脚本?

用于 JSON 的 jQuery

在 Python 中进行类似 jquery 的 HTML 解析?