我的文件如下:
{
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对这种语法有什么期望?
答案 0 :(得分:1)
您需要使用点符号标识要在update
的第二个参数中更新的数组元素,如下所示:
coll.update({'_id': mydoc['_id']}, {'$inc': {'subdocs.' + str(index) + '.n': 1}})