use*_*999 0 python mongodb pymongo
我有兴趣打印一系列查询.我有以下代码.
start = datetime.datetime(2012, 2, 2, 6, 35, 6, 764)
end = datetime.datetime(2012, 2, 2, 6, 55, 3, 381)
for doc in db.model.find({'time': {'$gte': start, '$lt': end}}):
print doc
Run Code Online (Sandbox Code Playgroud)
它完成了工作,基本上打印了我如何插入数据.
我的问题是:
是否可以打印出整个查询的一个元素?比如,我希望它只打印项目或日期或插入的其他输入,而不是给我{'time':datetime.datime(....),'input1':...,'item':. ..}.否则,如果我必须重新解析已经解析为mongodb的mongodb查询数据,那么它将大大减慢我的程序.
谢谢.
让我们有一些关于pymongo如何工作的基础知识.
假设你在Mongo中有一些插入数据的集合.您想通过查询从该集合中获取数据:
cursor = db.model.find({'time': {'$gte': start, '$lt': end}})
Run Code Online (Sandbox Code Playgroud)
方法查找"model"集合对象返回Cursor对象:包含有关查询和查询结果的所有信息的实体.
所以进行查询,下一步是获得结果.Mongo查询的结果类型可能因方法而异.在我们的例子中(find方法) - 结果是一堆JSON对象(迭代器对象),它们中的每一个都dict用Python语言中的类型表示.这意味着您不必解析结果:它们已经被解析为dicts.
另一件事Cursor:它是懒惰的.这意味着您可以按需收到结果.如果是Cursor对象,则必须遍历它以使用查询获取对象:
for result_object in cursor:
print result_object # result_object is a dict that holds JSON object
result_object['_id'] # Mongo ObjectId of the result_object
# result_object["<field_name>"] # Value stored in a field named <fieldname>
Run Code Online (Sandbox Code Playgroud)
一般来说,你必须尝试阅读Pymongo教程:它很短,并指出整个驱动程序的工作方式.
| 归档时间: |
|
| 查看次数: |
12514 次 |
| 最近记录: |