Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python dict上使用$push/$addToSet mongodb更新修饰符_Python_Mongodb - Fatal编程技术网

如何在python dict上使用$push/$addToSet mongodb更新修饰符

如何在python dict上使用$push/$addToSet mongodb更新修饰符,python,mongodb,Python,Mongodb,Mongodb更新提供了要附加到数组的$push修饰符。我的问题是,我希望这种情况发生在听写上 如果我的记录最初看起来像这样: {"collaborations":{'id1':{'role':'dev','scope':'dev'}}} 我想在“协作”字段dict中添加另一项(“下面的id2”),如下所示: {"collaborations":{'id1':{'role':'dev','scope':'dev'},'id2':{'role':'qa','scope':'qa'}}} 我正在

Mongodb更新提供了要附加到数组的
$push
修饰符。我的问题是,我希望这种情况发生在听写上

如果我的记录最初看起来像这样:

{"collaborations":{'id1':{'role':'dev','scope':'dev'}}}
我想在“协作”字段dict中添加另一项(“下面的id2”),如下所示:

{"collaborations":{'id1':{'role':'dev','scope':'dev'},'id2':{'role':'qa','scope':'qa'}}}
我正在尝试使用
$push

my_record.update({match_criteria},{$push,{"collaborations":{'id2':{'role':'qa','scope':'qa'}}}})
也可以使用
$addToSet

my_record.update({match_criteria},{$,{"collaborations":{'id2':{'role':'qa','scope':'qa'}}}})
对于这两种情况,mongodb抛出错误“无法将
$addToSet
$push
)修饰符应用于非数组”


如何对dict类型执行此操作?有什么想法吗?

问题是
$addToSet
$push
修饰符与数组一起工作

要更新子文档(这就是您在这里需要的),只需使用带有点符号的
$set
修饰符访问子文档(
field.subfield
):


在谷歌搜索此问题时,请标记为已回答以帮助他人:)
my_record.update({
    match_criteria
}, {
    '$set': {
        'collaborators.id2': {
            // new document fields here
        }
    }
})