zoukankan      html  css  js  c++  java
  • python & mongo问题记录

    背景介绍

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

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

  • 相关阅读:
    数据库sql一些常考基础命令
    C# and .NET之父——传奇的anders hejlsberg
    数据库中3大范式的详解
    小胖求职记—求职中的技巧
    程序员们喜爱看的文章
    为什么世界上没有天才(转)
    C语言中system函数的使用
    关于DataGrid的知识和技巧
    分页
    在调用方法时产生异常的处理方法
  • 原文地址:https://www.cnblogs.com/landpack/p/6135319.html
Copyright © 2011-2022 走看看