【问题标题】:How can I preform calculations on mongodb如何在 mongodb 上执行计算
【发布时间】:2015-05-25 13:29:54
【问题描述】:

我有一个与数据库相关的学校作业。出于技术原因,我们选择使用MongoDB and python 2.7 进行操作。我们考虑将这些数据放在数据库中。

data=[{"name":"zack","age": '12'},\
      {"name":"jake","age": '13'},\
      {"name":"drake","age": '14'},\
      {"name":"mike","age": '15'}]

一旦我们将数据插入到集合中,我们当然想以循环的方式对孩子的年龄进行计算,所以我们运行了这个:

 for kid in t.find({},{'_id':False,'name':False}):
    print 5+int(kid)`

输出是

    Traceback (most recent call last):
    File "C:\...\school_project.py", line 17, in <module>
    print 5+int(kid)
    TypeError: int() argument must be a string or a number, not 'dict'

当我们尝试将字符串附加到孩子的名字上时,例如 "hello" + kid + "how are you?" 并最终得到:

Traceback (most recent call last):
File "C:\...\school_project.py", line 17,...
print "hello" + kid + "how are you?"
TypeError: cannot concatenate 'str' and 'dict' objects

我希望我的查询返回整数/字符串对象,而不是 dict

所以我想,我们可能会以错误的方式查询,是否有一种“正确”的方式可以让我们使用我存储在数据库中的数据并将其插入到int\string 变量中?

还是 MongoDB 就是这样?

【问题讨论】:

  • MongoDB 的输出将采用 dict 格式,其中包含 name、age、id 作为键
  • 你应该试试 print 5+int(kid["age"])
  • 对于打印,您可以尝试 print "hello" + Kid["name"] + "how are you?"
  • 是的,我知道,有没有办法在变量中使用“dict”字段中的值?或者也许有另一种查询方式?
  • 好的,谢谢!

标签: python arrays mongodb find mongodb-query


【解决方案1】:

find 方法返回一个文档 (dict) 而不是一个值。因此,请确保在将 int 应用于它之前从 dict 中提取所需的字段。

【讨论】:

    【解决方案2】:

    变化:

     print 5+int(kid["age"])
    

    由于 mongo 的输出将采用 dict[JSON] 格式,因此您必须查询特定元素,然后添加

    print "hello" + kid["name"] + "how are you?"
    

    会给孩子起名字和hello world

    【讨论】:

      猜你喜欢
      • 2021-05-08
      • 2021-04-02
      • 1970-01-01
      • 2022-07-07
      • 2011-11-23
      • 1970-01-01
      • 2016-01-06
      • 1970-01-01
      • 2020-10-24
      相关资源
      最近更新 更多