0

宿題の結果を保存するmongodbを作成したいので、homework各科目の結果の配列を保存する辞書を作成します。

import pymongo

DBCONN = pymongo.Connection("127.0.0.1", 27017)
TASKSINFO = DBCONN.tasksinfo

_name = "john"
taskid = TASKSINFO.tasksinfo.insert(
    {"name": _name,
     "homework": {"bio": [], "math": []}
     })

TASKSINFO.tasksinfo.update({"_id": taskid},
                           {"$push": {"homework.bio", 92}})

いくつかの情報を db にプッシュしようとすると、エラーが発生します:

Traceback (most recent call last):
  File "mongo_push_demo.py", line 13, in <module>
    {"$push": {"homework.bio", 92}})
  File "/usr/local/lib/python2.7/dist-packages/pymongo-2.5-py2.7-linux-i686.egg/pymongo/collection.py", line 479, in update
    check_keys, self.__uuid_subtype), safe)
  File "/usr/local/lib/python2.7/dist-packages/pymongo-2.5-py2.7-linux-i686.egg/pymongo/message.py", line 110, in update
    encoded = bson.BSON.encode(doc, check_keys, uuid_subtype)
  File "/usr/local/lib/python2.7/dist-packages/pymongo-2.5-py2.7-linux-i686.egg/bson/__init__.py", line 567, in encode
    return cls(_dict_to_bson(document, check_keys, uuid_subtype))
  File "/usr/local/lib/python2.7/dist-packages/pymongo-2.5-py2.7-linux-i686.egg/bson/__init__.py", line 476, in _dict_to_bson
    elements.append(_element_to_bson(key, value, check_keys, uuid_subtype))
  File "/usr/local/lib/python2.7/dist-packages/pymongo-2.5-py2.7-linux-i686.egg/bson/__init__.py", line 466, in _element_to_bson
    type(value))
bson.errors.InvalidDocument: cannot convert value of type <type 'set'> to bson
4

1 に答える 1

5
{"$push": {"homework.bio", 92}})

:ではない はず,です。

{'a', 1}は Python の 2 つの要素のセットであるため、エラーが発生します。

于 2013-06-04T12:17:53.063 に答える