无法在MongoDB嵌套文档中设置$unset字段

无法在MongoDB嵌套文档中设置$unset字段,mongodb,pymongo,pymongo-3.x,Mongodb,Pymongo,Pymongo 3.x,我有一个如下所示的文档 { "list" :{ "friends": [ { "Name": "John", "Contact": "xyz", "Code": "B" }, { "Name": "Smith", "Contact": "abc", "Code": "A" } ] } } 我正在尝试使用基于

我有一个如下所示的文档

{
  "list" :{
    "friends": [
        {
        "Name": "John",
        "Contact": "xyz",
        "Code": "B"
        },
        {
        "Name": "Smith",
        "Contact": "abc",
        "Code": "A"
        }
      ]
   }
}
我正在尝试使用基于筛选器的$unset运算符删除字段。我的代码如下所示:

result = db.collection.update_many({"list.friends.code": "A"}, 
         {"$unset": {"list.friends.$.Name": "", "list.frieds.$.Contact": ""}})
但是,我得到了pymongo.errors.WriteError:无效的BSON字段名“list.friends.$.name”

请尝试以下操作:

result = db.collection.update_many({"list.friends": { $elemMatch: { "Code":"A"}}}, 
     {"$unset": {"list.friends.$.Name": "", "list.friends.$.Contact": ""}})

请注意,您的代码仅在查询中使用小写字符,与示例数据中的代码不匹配。。。另外,frieds应该是朋友…另外,您使用的是哪个MongoDB版本?仍在编写错误:无效的BSON字段名“list.friends.$.name”您使用的是最新版本的驱动程序吗?是的。它是3.6.0这是MongoDB版本,但是pymongo版本呢?