數據庫之mongodb

啓動mongodb服務端 : sudo service mongod start 或者 sudo /usr/local/mongodb/bin/mongod --config /etc/mongodb.confpython

中止mongodb服務端: sudo service mongodb stopmysql

查詢mongodb服務器狀態命令查詢狀態
ps -ajx|grep mongod 或者 sudo systemctl status mongodbweb

數據庫操做sql

進入數據庫:mongomongodb

顯示全部的數據庫:show databases ->show dbs數據庫

查看選手某個數據庫:db安全

數據庫切換(選擇和建立):use 數據庫名  ps: use test  默認是不會出現這個數據庫,除非建立集合纔會出現服務器

查看當前數據庫名稱:db數據結構

顯示集合:show collections     ps:這裏的集合數據於mysql裏的表app

查看集合的數據:db.集合名.find({})  ps:db.student.find({})   其中{}能夠不寫

刪除數據庫:db.dropDatabase()

sql語句中的刪除數據庫:drop database test3;

退出數據庫:Ctrl+c或者exit

集合(表)操做

在某個數據庫裏面建立集合:db.createCollection(name, options)

      name是要建立的集合的名稱

   options是一個文檔,用於指定集合的配置 ,選項​​參數是可選的,因此只須要到指定的集合名稱.

  ps: 建立集合,集合的名字叫students:db.createCollection("students")

查看當前數據庫的全部集合:show collections或者show tables

刪除集合: db.students.drop()

數據基本操做

插入數據:db.集合名稱.insert(document)    插入文檔時,若是不指定_id參數,MongoDB會爲文檔分配一個惟一的ObjectId

  insert,若是存在會報錯

  ps: db.students.insert({"name":"gj",gender:1})

查看數據:db.students.find({})或者db.students.find()

也能夠本身指定id:

  ps:db.students.insert({id:"20180418","name":"gj",gender:1})

 

簡單查詢

查詢全部的數據:db.students.find()或者db.students.find({})

更新數據:

db.集合名稱.update(<query>,<update>,{upsert: <boolean>,multi: <boolean>})

參數query:查詢條件,相似sql語句update中where部分

參數update:更新操做符,相似sql語句update中set部分

參數upsert : 可選,這個參數的意思是,若是不存在update的記錄,是否插入objNew,true爲插入,默認是false,不插入。

參數multi:可選,默認是false,表示只更新找到的第一條記錄,值爲true表示把知足條件的文檔所有更新

  ps:默認值更新一條數據,而且結構被修改  db.student.update({},{name:'mnc'})

   默認值更新一條數據,只修改字段,不破壞數據  db.stu.update({},{$set:{name:'mnc'}})

    全文檔找更新找到的第一條,把{name:'hr'}對應的這條修改爲{name:'mnc'},其餘字段所有丟掉

      db.students.update({name:"hr"},{name:"mnc",gender:1})

    指定屬性更新,經過操做符$set數據結構不會被破壞,也是隻修改一條  

      db.students.update({"name":"mnc"},{$set:{gender:0}})

修改多條匹配到的數據:多條操做必定要配合$set,不然會報錯注意true和flase是小寫

ps:把全部的性別都修改爲女生  db.students.update({},{$set:{gender:0}},{multi:true})

 把全部的gj修改爲「郭靖」,而且不破壞結構  db.students.update({"name":"gj"},{$set:{"name":"郭靖"}},{multi:true})

            "$set"也可加引號:db.students.update({"name":"gj"},{"$set":{"name":"郭靖"}},{"multi":true})

方法findOne():查詢,只返回第一個文檔:db.集合名稱.findOne({條件文檔})

方法pretty():將結果格式化: db.集合名稱.find({條件文檔}).pretty()

 

保存:

db.集合名稱.save(document)   若是文檔的_id已經存在則修改,而且結構變化,若是文檔的_id不存在則添加註意,若是_id寫成是id,則會把id當成key

 ps:db.students.save({"_id":"20180418","name":"張三","gender":1})

刪除:db.集合名稱.remove(<query>,{justOne: <boolean>})

  參數query:可選,刪除的文檔的條件

  參數justOne:可選,若是設爲true或1,則只刪除一條,默認false,表示刪除多條

  ps:只刪除匹配到的第一條   db.students.remove({"name" : "gj"},{"justOne":true})

  所有刪除: db.students.remove({})

關於max的示例

 ps:建立一個名爲sub的定長集合,長度爲5個字節,可容納的文檔數爲3

  db.createCollection("sub",{"capped":true,size:5,max:3}) 這裏當插入的文檔數超過3時會自動替換前一個文檔

比較運算符

  等於,默認是等於判斷,沒有運算符

  小於$lt  計算機術語裏面是 less than,意思是小於,縮寫是lt

  小於或等於$lte

  大於$gt   對應 greater than,意思是大於,縮寫是gt ;

  大於或等於$gte

  不等於$ne  對應 Not equal to,意思是不等於,縮寫ne;

  ps:查詢課時大於或等於2的學科  db.sub.find({"count":{"$gte":2}})

   查找標題不是mongodb的學科   db.sub.find({'title':{'$ne':"mongodb"}})

 邏輯運算符

  查詢時能夠有多個條件,多個條件之間須要經過邏輯運算符鏈接

  邏輯與:默認是邏輯與的關係,多個條件直接用逗號鏈接

    ps:查詢課時大於或等於10,而且標題爲web的學科  db.sub.find({"count":{"$gte":10},"title":"web"})

  邏輯或:使用$or 

    ps:查詢課時大於10,或標題爲web的學科 db.sub.find({"$or":[{"count":{"$gt":10}},{"title":"web"}]})

範圍運算符--"$in":使用"$in","$nin" 判斷是否在某個範圍內

  ps:查詢課時爲八、14的學科  db.sub.find({"count":{"$in":[8,14]}})

   查詢課時不爲八、14的學科 db.sub.find({"count":{"$nin":[8,14]}})


Limit與Skip:

  db.集合名稱.find().limit(NUMBER), 參數NUMBER表示要獲取文檔的條數, 若是沒有指定參數或者0則顯示集合中的全部文檔

  方法limit():用於讀取指定數量的文檔 ps:  查詢2條信息 db.sub.find({}).limit(2)

  方法skip():用於跳過指定數量的文檔

  db.集合名稱.find().skip(NUMBER)   參數NUMBER表示跳過的記錄條數,默認值爲0

  ps:查詢從第3條開始的學生信息 db.stu.find().skip(2)

  

limit()skip()一塊兒使用:

  ps: 從第二條開始,而且只要三條  db.sub.find().skip(2).limit(3)

 

MongoDBpython交互:

建立客戶端:

#無安全認證:
client = MongoClient('localhost', 27017)
client = MongoClient('mongodb://localhost:27017/數據庫名稱')
client = MongoClient('mongodb://localhost:27017/test1')

#有安全認證:
client = MongoClient('mongodb://用戶名:密碼@localhost:27017/數據庫名稱')
client = MongoClient('mongodb://t1:123@localhost:27017/test1')

代碼實現:

from pymongo import MongoClient

client = MongoClient("mongodb://localhost:27017/test1")
#獲得名字叫test1的數據庫

test1 = client['test1'] #也能夠寫成 test1 = client.test1
#獲得名字叫t1的集合

t1 = test1['t1'] #也可寫成 t1 = test1.t1
#要插入的數據
s1 = {"name":"郭靖","age":18}
s = t1.insert_one(s1)

更新數據:

s = t1.update_one({"name":"郭靖"},{"$set":{"name":"黃蓉"}})

刪除數據:

s1 = t1.delete_one({'name':'黃藥師'})

查找數據:

s1 = t1.find_one({'name':'黃蓉'})
#查找全部數據 t1.find()
相關文章
相關標籤/搜索