我知道为了找到嵌套文档,我将使用点表示法,但我需要点后面的内容采用变量形式。我正在执行以下操作:
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
}
}
我不想在要添加到 a3c1b98d5606be7c5f0c5d14ffb0b741 键的偏移文档中添加“src_id”。我使用的是 python3.5 和 pymongo 版本 3.2.2。谢谢!
最佳答案
你可以只拥有一个嵌套字典:
collection.update_one({'_id': md5_hash},
{'$addToSet': {'offset': {src_id: offset}}})
或者,您可以通过字符串格式或连接动态创建字段:
collection.update_one({'_id': md5_hash},
{'$addToSet': {'offset.%s' % src_id: offset}})
关于python - 如何使用变量访问 Pymongo 嵌套文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38986261/