据我所知,为了找到一个嵌套文档,我将使用点表示法,但我需要点后面的变量形式。我正在做以下事情:
collection.update_one(
{'_id': md5_hash},
{'$addToSet' : {
'src_id': src_id,
'offset.src_id' : offset}}
)
并获得
{
"_id" : "de03fe65a6765caa8c91343acc62cffc",
"total_count" : 1,
"src_id" : [
"a3c1b98d5606be7c5f0c5d14ffb0b741"
],
"offset" : {
"a3c1b98d5606be7c5f0c5d14ffb0b741" : [
512
],
"src_id" : [
512,
1024,
1536,
2048,
2560,
3072,
3584,
4096,
4608
]
},
"per_source_count" : {
"a3c1b98d5606be7c5f0c5d14ffb0b741" : 1
}
}
我不想要" src_id"在偏移文档中,我想添加到a3c1b98d5606be7c5f0c5d14ffb0b741键。我使用python3.5和pymongo版本3.2.2。谢谢!
答案 0 :(得分:1)
你可以拥有一个嵌套字典:
collection.update_one({'_id': md5_hash},
{'$addToSet': {'offset': {src_id: offset}}})
或者,您可以通过字符串格式化或连接动态创建字段:
collection.update_one({'_id': md5_hash},
{'$addToSet': {'offset.%s' % src_id: offset}})