gpt4 book ai didi

python - $addToSet,以及更新其他字段?

转载 作者:可可西里 更新时间:2023-11-01 10:00:44 25 4
gpt4 key购买 nike

我在 MongoDB 中更新文档时遇到问题,涉及使用 Pymongo 添加到列表和更新某些字段。

总而言之,我想:

  1. 向列表添加一个值。
  2. 更新一些字段。
  3. 使用单个更新语句。

我尝试了两种方法,但都不起作用:

key = {'username':'user1'}

user_detail = {
'name':{'first':'Marie', 'last':'Bender'},
'items':{'$addtoset':{'cars':'BMW'}}
}

user_detail2 = {
'name':{'first':'Marie', 'last':'Bender'},
'$addtoset':{'items.cars':'BMW'}
}

mongo_collection.update(key, user_detail, upsert=True)
mongo_collection.update(key, user_detail2, upsert=True)

错误消息:“$addToSet”中的美元 ($) 前缀字段“$addToSet”对于存储无效。

我的预期结果:

之前:

{
'username':'user1',
'item': {'cars':['Merc','Ferrari'],'house':1}
}

预期之后:

{
'username':'user1',
'name': {'first':'Marie', 'last':'Bender'},
'item': {'cars':['Merc','Ferrari','BMW'],'house':1}
}

最佳答案

您的第二次尝试更接近,但您需要使用 $set运算符设置name的值:

user_detail2 = {
'$set': {'name': {'first': 'Marie', 'last': 'Bender'}},
'$addtoset': {'items.cars': 'BMW'}
}

关于python - $addToSet,以及更新其他字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29359649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com