MongoDB數據庫

1.mongodb啓動

​	配置環境變量  MongoDB/bin 添加到環境變量

​	經過命令來啓動MongoDB

​	默認端口是: 27017

​	redis:6379

​	mysql:3306

​	mongod --dbpath="指定數據庫的存放路徑"
     Ubuntu啓動mongodb數據庫:
     sudo service mongodb start
     pgrep mongo -l
2.鏈接MongoDB數據庫

​	經過 mongo 進行本地數據庫鏈接
 import pymongo
client = pymongo.MongoClient('127.0.0.7', 27017)   # 本地IP,默認端口
db = client['bank']  # 進入數據庫
col = db['test_set']   # 進入集合



3.MongoDB數據

​	mysql - 數據庫服務 - 數據庫 - 數據表 - 字段 - 數據row

​	mongodb - 數據庫服務 - 數據庫 - 數據表 - 字段 - 數據	

​	show databases 查看當前數據庫服務, 中包含的數據庫 磁盤中的數據庫

​	use db name 切換當前使用的數據庫, 若是數據庫不存在,會在內存中建立一個新的數據庫

​	db 顯示當前的數據庫, 指數據庫的名字

​	show tables  查看當前數據庫中的數據表

4.建立數據表

​	db.數據表名 在內存中建立數據表

5.只有寫入數據才能將內存中的數據庫和數據表永久的寫入到磁盤中

​	orm.create({}) == orm.insert({})

​	增長數據:

​		db.users.insert({"name":1,"age":2})

​		數據庫.數據表.指令({數據})

​	查詢數據

​		db.users.find()

​		數據庫.數據表.指令()

6.MongoDB數據類型和數據存儲結構

​	數據存儲結構:大字典

​	數據類型:

​		objectId  數據類型自增id  不限定在數據庫和數據表中

​		String  字符串數據類型

​		Int        不直接使用int數字,Int32,Int4 若是不指定Int 那麼存儲的是Double

​		Double 雙精度浮點型, 默認數字存儲的數據類型 不存在float 類型

​		Array    類表數據類型 list=[]

​		Object 字典數據類型 dict = {}

7.增刪改的詳細操做:

​	db.數據表名.指令({})



​	增:

​	db.use.insertOne({name:2,age:18})  // 增長一條

​	db.use.insertMany([{name:1},{name:'chegan'},{name:2,age:18}]) // 增長多條

​	

​	查:

​	查詢全部符合條件的數據 : db.use.find({})

​	查詢符合條件的第一條數據 :db.use.findOne({name:1})  // 查詢符合條件的第一項

​	db.use.find({name:2,age:18}) 並列條件 name與age 同時知足的

​	改:

​	db.use.update({name:2},{$set: {age:20}}) // 查詢到符合條件的第一項修改

​	更新第一條符合條件的數據:db.stu.updateOne({age:99}, {$set:{"name":"JW8"}})

​	更新全部符合條件的數據 : db.stu.updateMany({age:99}, {$set:{"name":"JW8"}})

​	刪:

​	刪除符合條件的全部數據:db.use.remove({}) // 官方不推薦

​	官方推薦寫法:
​        刪除第一條符合條件的數據 : db.use.deleteOne({name:1})
​        刪除符合條件的全部數據:db.use.deleteMany({name:1}) 
​        刪除全部數據 :db.use.deleteMany({})	

8.MongoDB中的數據表,數據行,數據列
                Mysql       MongoDB
    數據表      table       Collections
    數據行      row         Documents
    數據列      字段        Field

9.高級查詢:

​ 並列查詢 :db.Collection.find({Field:1,Field2:2})
    或查詢   :db.Collection.find({$or:[{Field:1},{Field2:3}]})
                      db.stu.find({$or:[{age:99},{ages:666}]}) 在不一樣字段查詢或條件時使用$or
                      db.Collection.find({Field:{$in:[1,2,3,4,5]}})
                      db.stu.find({age:{$in:[9,99,999,9999,9999]}}) 在相同字段狀況下查詢或條件時使用 $in

​               select * from table where name=1 or age=2 or gender=3
   Array 查詢 db.stu.find({"hobby":"DSB"})
​    		數學比較符 $lt $lte $gt $gte $eq $ne

​   $all : 子集查詢 
    		db.stu.find({l:{$all:[8,6,4,2]}})
   Object 查詢 :
   		 db.stu.find({"class.name":"python"})	

10.高級版 修改:

```
$set : 強制修改字段值 
$inc : 引用增長 db.stu.updateMany({}, {$inc: {"age":10}})
$unset: 強制刪除某個Field db.stu.updateMany({}, {$unset: {"age":1}})
針對Array:
  增長操做:
    db.stu.updateOne({name:"大金"},{$push:{"hobby":"抽菸"}})
    $push == append
    db.stu.updateOne({name:"大金"},{$pushAll:{"hobby":[1,2,3]}})
    $pushAll == extend
  刪除操做:
    db.stu.updateOne({name:"大金"},{$pull:{"hobby":"DSB"}})
    $pull == remove
    $pullAll == 刪除每個元素
    db.stu.updateOne({name:"大金"},{$pullAll:{"hobby":[2,3]}})
    
    $pop() 是刪除列表中的第一個 (-1) 或者最後一個 (1) 
    db.stu.updateOne({name:"金角"},{$pop:{"hobby":1}})刪除最後一個
    db.stu.updateOne({name:"金角"},{$pop:{"hobby":-1}})刪除第一個元素
  
  更新元素 :
    db.stu.updateOne({name:"金角","hobby":2},{$set:{"hobby.$":"抽菸"}})
    db.stu.updateOne({name:"JW8","class.name":"python"},{$inc:{"class.$.score":10}})

針對Object:
    db.stu.updateOne({name:"金日"},{$unset:{"class.classtype":"bcyy"}})
    db.stu.updateOne({name:"金日"},{$set:{"class.classtype":"bcyy"}})

11. $ 關鍵字
    用來存儲符合條件的元素下標索引
    l = [1,2,3,1,2,2,2] 哪一個元素 == 2 它的下標是多少 $就等於這個下標的數字
    l[1] = "抽菸"
    l[$] = "抽菸"
    
12.limit skip sort
    limit 選取數據量
    skip 跳過數據量
    sort 根據字段進行排序
    db.stu.find().sort({ name:1 }).skip(6).limit(3)

​	
13.mongodb 數據庫建立索引
db.company_datil.createIndex({"companyUniqueCode(要添加索引的名字)":1(升序,-1降序)})

db.company_datil.getIndexes()  // 查看因此韓集合
14. 按條件查詢
db.scholar_node.find({ 'type': { $nin:['other','label']}}).count()
相關文章
相關標籤/搜索