我怎样才能在mongodb

时间:2015-05-25 13:29:55

标签: python arrays mongodb find mongodb-query

我有一份与数据库相关的学校作业。出于技术原因,我们选择使用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是怎样的?

2 个答案:

答案 0 :(得分:0)

find方法返回文档(dict)而不是值。因此,在将dict应用到int之前,请确保从x:DeferLoadStrategy="Lazy"中提取所需字段。

答案 1 :(得分:0)

<强>的变化:

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

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

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

将孩子们的名字命名为hello world