2016-08-17 30 views
1

我明白,爲了找到一個嵌套的文檔,我要使用點符號,但我需要以點後面的變量形式。我做了以下內容:如何訪問Pymongo嵌套的文檔變量

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。謝謝!

回答

1

只是您可以嵌套的字典:

collection.update_one({'_id': md5_hash}, 
         {'$addToSet': {'offset': {src_id: offset}}}) 

或者,您也可以通過字符串格式化或連接動態地進行字段:

collection.update_one({'_id': md5_hash}, 
         {'$addToSet': {'offset.%s' % src_id: offset}})