背景介绍

使用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'}

现在我们使用这几种方式都拿到了想要的结果,那么哪种方式更加高效呢?这个我暂时也没对比过。

python & mongo问题记录的更多相关文章

  1. Python Mongo操作

    # -*- coding: utf-8 -*- ''' Python Mongo操作Demo Done: ''' from pymongo import MongoClient conn = None ...

  2. Python爬虫个人记录(三)爬取妹子图

    这此教程可能会比较简洁,具体细节可参考我的第一篇教程: Python爬虫个人记录(一)豆瓣250 Python爬虫个人记录(二)fishc爬虫 一.目的分析 获取煎蛋妹子图并下载 http://jan ...

  3. Python爬虫个人记录(二) 获取fishc 课件下载链接

    参考: Python爬虫个人记录(一)豆瓣250 (2017.9.6更新,通过cookie模拟登陆方法,已成功实现下载文件功能!!) 一.目的分析 获取http://bbs.fishc.com/for ...

  4. Mongo学习记录

    引子 最近做项目利用mongo记录的日志做数据统计.着了非关系型数据库的迷,于是乎买了本<MongoDB实战>学习了一番.记录一下学习笔记,共享之. 准备 我在自己的Linux服务器上装了 ...

  5. python 文本编辑基础记录

    不熟悉编码方式,同时python的编码方式折磨我了很长时间,记录下,以免忘记,本文内容存在错误,是自己理解,看到仅当参考 Unicode 是字符集,有点像一本字典,utf-8是在unicode这本字典 ...

  6. Python简单爬虫记录

    为了避免自己忘了Python的爬虫相关知识和流程,下面简单的记录一下爬虫的基本要求和编程问题!! 简单了解了一下,爬虫的方法很多,我简单的使用了已经做好的库requests来获取网页信息和Beauti ...

  7. python爬虫学习记录——各种软件/库的安装

    Ubuntu18.04安装python3-pip 1.apt-get update更新源 2,ubuntu18.04默认安装了python3,但是pip没有安装,安装命令:apt install py ...

  8. [Java/Python] java调用python脚本问题记录

    Java调用Python的的两种方式 1.Runtime private static String call_python(String input_argv) { String python_py ...

  9. Python爬虫学习记录【内附代码、详细步骤】

    引言: 昨天在网易云课堂自学了<Python网络爬虫实战>,视频链接 老师讲的很清晰,跟着实践一遍就能掌握爬虫基础了,强烈推荐! 另外,在网上看到一位学友整理的课程记录,非常详细,可以优先 ...

随机推荐

  1. 1208PHP基础

    PHP是一种创建动态交互性站点的强有力的服务器端脚本语言(后端.弱类型) 从地址栏直接寻找:localhost/路径/路径PHP语法:PHP脚本以<?php 开始,以?>结束; PHP文件 ...

  2. hive学习笔记

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  3. ctf汇总

    IDF实验室:牛刀小试 IDF实验室:倒行逆施 linux shell 常用指令 汇编笔记 堆栈溢出

  4. Lambda表达式详解

    前言 1.天真热,程序员活着不易,星期天,也要顶着火辣辣的太阳,总结这些东西. 2.夸夸lambda吧:简化了匿名委托的使用,让你让代码更加简洁,优雅.据说它是微软自c#1.0后新增的最重要的功能之一 ...

  5. linux查看是什么操作系统是什么命令

    https://zhidao.baidu.com/question/361519585968730492.html

  6. JS+CSS 钟表

    .<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title& ...

  7. nodejs express 安装

    前几天刚遇到的问题sudo npm install -g expresssudo npm install -g express-generator然后通过express -V查看版本,看好是大写的V ...

  8. Java 应该跨四个平台

    编程语言从属于操作系统,要统一,就要在根本处统一,要统一的是操作系统,而不是编程语言.你认为是苹果决定苹果树,还是苹果树决定苹果? 编程语言跨操作系统是错误的道路,你见过苹果长在桔子树上的吗?苹果长得 ...

  9. (转)Vsdocman7.2 注册版

    Vsdocman是一个优秀的.NET源代码注释编写工具,方便的以GUI的方式设计.NET源代码的注释.我们只是大自然的搬运工:http://download.csdn.net/detail/iamyg ...

  10. POJ1026 Cipher(置换的幂运算)

    链接:http://poj.org/problem?id=1026 Cipher Time Limit: 1000MS   Memory Limit: 10000K Total Submissions ...