python & mongo问题记录
2016-12-05 20:16
288 查看
背景介绍
使用python操作
mongo进行的一些操作记录,为了方便日后可以快速的解决类似问题。
准备工作
为了尽可能简单的说明,我将插入几条简单的数据。from pymongo import MongoClient client = MongoClient('mongodb://your-mongo-username:your-mongo-password@localhost:27017/your-db') db = client.your-db collection = db.your_collection
获得集合句柄后,则可以先进行插入数据操作。
collection.insert_one({"name":"frank","age":24}) collection.insert_one({"name":"landpack","age":4}) collection.insert_one({"name":"jack","age":14})
然后可以执行一条查询操作,来看看结果。
>>> collection.find() <pymongo.cursor.Cursor object at 0x7f0c13017750>
如果你也是使用
python的交互环境进行运行如上代码的你也会看到我们得到了一个游标。
接下来把游标里面的数据拿出来。
>>> cursor = collection.find() >>> for c in cursor: ... print c ... {u'age': 24, u'_id': ObjectId('58455610e138231725c0f6eb'), u'name': u'frank'} {u'age': 4, u'_id': ObjectId('58455622e138231725c0f6ec'), u'name': u'landpack'} {u'age': 14, u'_id': ObjectId('58455631e138231725c0f6ed'), u'name': u'jack'} >>> ####查询最新的一条记录 下面我们来研究第一个主题,查询最新的一条记录。也就是最后插入的一条记录。
现在有那么多条记录,假设我们只关心其中最后插入的那条,我们可以用下面的方式。
>>> cursor = collection.find().limit(1).sort('_id', -1) >>> for c in cursor: ... print c ... {u'age': 14, u'_id': ObjectId('58455631e138231725c0f6ed'), u'name': u'jack'}
可以看到,我们得到了想要的结果,再试试如下方式。
>>> for c in cursor: ... print c ... {u'age': 14, u'_id': ObjectId('58455631e138231725c0f6ed'), u'name': u'jack'}
同样拿到了想要的结果,我们还可以用下面的方式。
>>> cursor = collection.find().limit(1).sort('$natural',-1)
>>> for c in cursor: ... print c ... {u'age': 14, u'_id': ObjectId('58455631e138231725c0f6ed'), u'name': u'jack'}
现在我们使用这几种方式都拿到了想要的结果,那么哪种方式更加高效呢?这个我暂时也没对比过。
相关文章推荐
- 从国外某著名DNN 知情人士 Nina's Blog上看到一些有用的文章,在此记录一下,也为国内DNN,问题搜索,出一点力
- linux enterprise 5 &Oracle10g中出现的问题记录
- python初学常见问题记录(4.1)-解决了输出覆盖和提示不对应问题
- "BOF或EOF中有一个是真,或者当前的记录已被删除,所需的操作要求一个当前的记录"问题解决
- Windows下安装mysql-python(MySQLdb)问题记录
- 在"Select top 2 * from news order by count"进行筛选时,如果count值有重复时,则筛选结果将不是2条记录,这个问题该怎么解决?
- python,django,mongo的时区问题
- python初学常见问题记录(3)--Ipython用法
- python初学常见问题记录(2)--eclipse下报错及乱码
- 数据库乱码问题 & Python 编码问题(Unicode 的 encode、decode 相互转换 )
- Python 学习记录(1)对象命名导致的问题
- MAC OS中安装MySQLdb-python的问题解决记录.
- cx_Freeze打包python时,出现UnicodeDecodeError: 'utf8′.... 问题的解决
- python初学常见问题记录(4)
- Python:通过自定义系统级快捷键来控制程序开始或停止记录日志(使用小技巧解决一个貌似无解的问题)
- python 启动提示IDLE's subprocess didn't make connection问题:
- 由cache"引起"的内存问题——记录Linux的Cache Memory(缓存内存)机制
- Python读写mongo时区问题
- python 开发问题记录(二)
- python IDE && 日志记录