【问题标题】:Edit embedded document in mongodb using python(pymongo)使用 python(pymongo) 在 mongodb 中编辑嵌入文档
【发布时间】:2016-05-31 16:20:54
【问题描述】:

我在使用 python 使用 pymongo 更新 mongodb 集合内的文档时遇到以下错误。非常感谢任何帮助。

 x = 4
 str = "ratings.${x}.rating"
 db.amitava1.update({"_id":1},{"$inc":{[str]:1 } } )

Traceback(最近一次调用最后一次):

文件“”,第 1 行,在 TypeError: unhashable type: '列表'***

【问题讨论】:

    标签: python mongodb


    【解决方案1】:

    您收到该错误是因为您正在执行{"$inc":{[str]:1 }}。即,尝试将[str] 设置为字典{[str]:1 } 中的键。

    它说因为你不能使用列表作为字典的键,因为列表是不可散列的。您只能使用可散列类型(定义了 __hash__ 函数的类型)键值。

    您的代码似乎还有其他问题。我认为你需要使用

    str = "ratings.${x}.rating".format(x=x)
    

    或其他东西来替换字符串中的 x。

    【讨论】:

    • 非常感谢 rofls。有效。我还纠正了其他错误。最终代码如下。 >>> x = 0 >>> str = "ratings.{x}.rating".format(x=x) >>> db.amitava1.update({"_id":1},{"$inc": {str:1 } } ) {u'updatedExisting': True, u'nModified': 1, u'ok': 1, u'n': 1}
    猜你喜欢
    • 2019-02-27
    • 1970-01-01
    • 2021-11-30
    • 2015-08-27
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 2018-08-21
    相关资源
    最近更新 更多