Python 連接 mongoDB、查詢集合數據


1 mongodb 數據庫的安裝

2 python 連接 mongodb 的驅動程序,pip install pymongo

#!/usr/bin/python3

#TODO:

import os
import pymongo
import json

myclient = pymongo.MongoClient('mongodb://localhost:27017/')  #連接mangodb數據庫
dblist = myclient.list_database_names()  #讀取 MongoDB 中的所有數據庫

#插入字典 單個數據
def insert_data(dict_rule):
    myrule.insert_one(dict_rule)  # 集合中插入文檔使用 insert_one() 方法,該方法的第一參數是字典 name => value 對
    return

#插入字典 多個數據
def insert_many(dict_list):  # 該方法的第一參數是字典列表
    myrule.insert_many(dict_list)
    return

#查詢字典
def select_data(field_name,value):
    result = myrule.find_one({field_name:value})
    print(result)
    return result

#修改字典
def change_data(field_name,old_value,new_value):
    myquery = {field_name: old_value}
    new_value = {myrule: {field_name:new_value}}
    myrule.update_one(myquery, new_value) # update_one() 方法修改文檔中的記錄。該方法第一個參數為查詢的條件,第二個參數為要修改的字段
    return

# 排序字典
def sort_data(field_name):
    for x in myrule.find().sort(field_name,-1):  #1 為升序,-1 為降序,默認為升序。
        print(x)

def delete_data(field_name,value):
    myquery = {field_name,value}
    myrule.delete_one(myquery)  #delete_one() 方法來刪除一個文檔,該方法第一個參數為查詢對象,指定要刪除哪些數據。

#加載json文件
def load_json(file_name):
    with open(file_name,'r') as f:
        text = json.loads(f)
        print(f)
        for line in text:
            print(line)

if __name__ == '__main__':
    # 連接數據庫
    mydb = myclient["sets"]  # 打開名稱為 sets 的數據庫
    myrule = mydb['popblock']  # 打開 sets 數據庫下的名稱為 popblock 的集合

    # 數據庫不存在
    if "sets" not in dblist:
        mydict = {"rule_id": "1"}
        insert_data(mydict)  # MongoDB 中,集合只有在內容插入后才會創建! 創建集合(數據表)后要再插入一個文檔(記錄),集合才會真正創建。
        print("數據庫創建成功!")
    # 數據庫存在
    else:
        file_name = r'D:\xxxxxx\xxxxxxxxx.json'
        with open(file_name, 'r', encoding='UTF-8') as f:
            json_data = json.loads(f.read())
            for line in json_data['rules']:
                insert_data(line)
        print("數據庫更新完成!")

    #查詢
    select_data('xxxxxxx','xxxxx')

 

3 pycharm 安裝 mongo explorer 插件

4.數據庫的連接、創建、增、刪、改、查等:

 

 

#coding=utf-8

#C:\MongoDB

import pymongo
import csv
import xlrd

#連接數據庫
myclient = pymongo.MongoClient("mongodb://localhost:27017")

#1、創建數據庫=給Excel命名
mydb = myclient["softcenter"]

#2、在文件下創建表單=在Excel中添加sheet
sheet_tabs_soft = mydb['softinfo']

#3、將excel中的軟件數據存入到數據庫中
file_path = r'C:\Users\Desktop\soft.xlsx'

xlsx = xlrd.open_workbook(file_path)  #打開文件
sheet1 = xlsx.sheets()[0]    # 獲得第1張sheet,索引從0開始
row =sheet1.nrows
for line in range(row):
    rowdate = sheet1.row_values(line)  # i行的list
    data = {
        'name': rowdate[1],
        'appid': rowdate[2]
    }
    sheet_tabs_soft.insert_one(data)

#5、將數據庫中存放的數據打印輸出,find函數中特殊字符的使用方法
for item in sheet_tabs_soft.find({'name':'愛奇藝'}):
    print(item)

 

可以調用count()方法來統計查詢結果的條數。

count = collection.find({'gender': "male"}).count()
print(count)

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM