【问题标题】:pymongo syntax to update a subdocumentpymongo 语法更新子文档
【发布时间】:2012-12-03 09:42:10
【问题描述】:

我的文档如下所示:

{
  a: "..."
  subdocs [
    {
      l: "..."
      m: "..."
      n: 0
    },
    {
      l: "..."
      m: "..."
      n: 0
    }

  }
}

我必须使用 pymongo 更新特定子文档中的“n”字段。我有子文档的文档和索引,所以我可以像这样得到子文档

subdoc = mydoc['subdocs'][index]

我尝试通过 pymongo 进行更新

coll.update( { mydoc['subdocs'][index] : subdoc }, { "$inc": { n: 1 }} )

我得到了这个异常

<type 'exceptions.TypeError'>

我已经尝试了几种变体,但无法正确使用 pymongo 语法。我认为我的查询文档不正确。 pymongo 对这种语法有什么期望?

【问题讨论】:

    标签: mongodb pymongo


    【解决方案1】:

    您需要使用点符号在第二个参数中标识要更新为update 的数组元素,如下所示:

    coll.update({'_id': mydoc['_id']}, {'$inc': {'subdocs.' + str(index) + '.n': 1}})
    

    【讨论】:

      猜你喜欢
      • 2014-10-24
      • 2012-04-05
      • 2021-06-22
      • 1970-01-01
      • 2020-07-06
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多