Python - 数据科学之 NoSQL 数据库

  • 简述

    随着越来越多的非结构化或半结构化数据变得可用,通过 NoSql 数据库管理它们的需求也在增加。Python 还可以与 NoSQL 数据库进行交互,其方式与与关系数据库交互的方式类似。在本章中,我们将使用 Python 作为 NoSQL 数据库与 MongoDB 进行交互。如果您是 MongoDB 新手,可以在此处的教程中学习。
    为了连接到 MongoDB,python 使用了一个名为pymongo. 您可以使用 Anaconda 环境中的以下命令将此库添加到您的 python 环境中。
    
    conda install pymongo
    
    该库使 python 能够使用 db 客户端连接到 MOngoDB。连接后,我们选择要用于各种操作的数据库名称。
  • 插入数据

    要将数据插入 MongoDB,我们使用数据库环境中可用的 insert() 方法。首先,我们使用下面显示的 python 代码连接到数据库,然后我们以一系列键值对的形式提供文档详细信息。
    
    # Import the python libraries
    from pymongo import MongoClient
    from pprint import pprint
    # Choose the appropriate client
    client = MongoClient()
    # Connect to the test db 
    db=client.test
    # Use the employee collection
    employee = db.employee
    employee_details = {
        'Name': 'Raj Kumar',
        'Address': 'Sears Streer, NZ',
        'Age': '42'
    }
    # Use the insert method
    result = employee.insert_one(employee_details)
    # Query for the inserted document.
    Queryresult = employee.find_one({'Age': '42'})
    pprint(Queryresult)
    
    当我们执行上面的代码时,它会产生以下结果。
    
    {u'Address': u'Sears Streer, NZ',
     u'Age': u'42',
     u'Name': u'Raj Kumar',
     u'_id': ObjectId('5adc5a9f84e7cd3940399f93')}
    
  • 更新数据

    更新现有的 MongoDB 数据类似于插入。我们使用 mongoDB 原生的 update() 方法。在下面的代码中,我们将现有记录替换为新的键值对。请注意我们如何使用条件标准来决定要更新的记录。
    
    # Import the python libraries
    from pymongo import MongoClient
    from pprint import pprint
    # Choose the appropriate client
    client = MongoClient()
    # Connect to db
    db=client.test
    employee = db.employee
    # Use the condition to choose the record
    # and use the update method
    db.employee.update_one(
            {"Age":'42'},
            {
            "$set": {
                "Name":"Srinidhi",
                "Age":'35',
                "Address":"New Omsk, WC"
            }
            }
        )
    Queryresult = employee.find_one({'Age':'35'})
    pprint(Queryresult)
    
    当我们执行上面的代码时,它会产生以下结果。
    
    {u'Address': u'New Omsk, WC',
     u'Age': u'35',
     u'Name': u'Srinidhi',
     u'_id': ObjectId('5adc5a9f84e7cd3940399f93')}
    
  • 删除数据

    在我们使用 delete 方法的情况下,删除记录也很简单。这里还提到了用于选择要删除的记录的条件。
    
    # Import the python libraries
    from pymongo import MongoClient
    from pprint import pprint
    # Choose the appropriate client
    client = MongoClient()
    # Connect to db
    db=client.test
    employee = db.employee
    # Use the condition to choose the record
    # and use the delete method
    db.employee.delete_one({"Age":'35'})
    Queryresult = employee.find_one({'Age':'35'})
    pprint(Queryresult)
    
    当我们执行上面的代码时,它会产生以下结果。
    
    None
    
    所以我们看到数据库中不再存在特定的记录。