如何在python dict上使用$push/$addToSet mongodb更新修饰符
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'}}} 我正在
$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
}
}
})