updateの$pushをつかって入れ子構造のデータを作りたい

あるフィールドにドキュメント丸ごと突っ込んで入れ子構造にしたい時は
そのフィールドの値を配列型にしておかなければいけないらしい。


{'no': 4, 'key':''}というデータに対しては

#Pythonのコード。いろいろ省略
tbl.update({'no': 4}, {'$push': {'key': {'A': 'k_a', 'B': 'k_b'}}})

これを実行しても入らない。

あらかじめこんな感じに作っておかなければいけない。
{'no': 4, 'key':[]}

実行後:
{'no': 4, 'key':[{'A': 'k_a', 'B': 'k_b'}]}

実行後(2回目):
{'no': 4, 'key':[{'A': 'k_a', 'B': 'k_b'}, {'A': 'k_a', 'B': 'k_b'}]}

なるほどなー。