mongodb的操作
一、基本概念
mongodb是屬于檔案型的非關系型資料庫,是開源、高性能、高可用、可擴展的
二、MySQL redis 和mongo之間的對比
| MySQL | 關系型資料庫,表和表之間有外鍵關系,串列結構可以使用復雜的查詢陳述句 | 成本低 | 缺點:速度慢消耗io操作 |
|---|---|---|---|
| redis | key-value形式資料庫,具備生命周期特性,純記憶體操作 | 速度快 | 缺點:成本太高 |
| mongodb | key-value形式嗎,是nosql非關系型資料庫,一般是io操作,一般是記憶體操作 | 性能比mysql高但是沒有redis快 | 成本比mysql高但是又比redis低 |
三、基本操作
展示所有資料庫
show databases
使用或創建資料庫
use databases_name(表名稱);
創建表
db.createCollection("code"); # 創建code表
展示表
db.code.find();
洗掉表
db.code.drop();
洗掉表中資料
db.code.remove({'name':'admin','age':20});
添加資料
db.code.insert({name:"admin",age:20});
修改資料
db.code.update({name:"admin"},{$set:{name:"dong"}})
創建過期索引
# datetime: 創建索引所在的欄位 為date形式
# expireAfterSeconds:為過期時間 表示30秒后洗掉資料
db.code.createIndex({"datetime":1},{expireAfterSeconds:30});
查看所有索引
db.code.getIndexes()
查看當前使用的資料庫
db
洗掉當前使用的資料庫
db.dropDatabase()
四、封裝pymongo,方便專案集成
pip install pymongo
import datetime
import pymongo
import pytz
# 設定時區
tzinfo = pytz.timezone("Asia/Shanghai")
# 連接mongo資料庫類
class MyMongo:
def __init__(self):
# 初始化資料庫鏈接
self.client = pymongo.MongoClient(host="localhost",port=27017,tz_aware=True,tzinfo=tzinfo)
# 宣告資料庫
self.db = self.client.mytornado
# 宣告具體的表
self.table = self.db.code
# 插入資料
def insert(self,data):
return self.table.insert_one(data)
# 查詢操作
def find(self,data):
res = self.table.find_one(data)
return res
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/341891.html
標籤:python
