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()