mongoDB使用

MongoDB:文件型數據庫 find() update() delete() insert()持久化javascript

redis:get set 默認持久化java

 

1.MongoDB是什麼及其概念:python

#MongoDB是一個快速存儲數據(JSON),並ORM操做的數據庫
#MongoDB是文件型數據庫,不存在關係
#MongoDB中基本上存儲了大量的冗餘數據
#MongoDB中沒有字段的概念
#MongoDB是很是靈活的數據庫

#專有名詞:
#Mysql MongoDB
#DB DB
#Table Colletions Table概念
#row Documents row概念
#字段 Field 字段概念
#_id 惟一律念

#不存在即建立:
#若是使用了不存在的對象即建立該對象

2.MongoDB的存儲結構:程序員

關係型數據庫:

#id name age course score score1

#1 子龍 84 python 99 0
#2 xiaoqinglong 73 javascript 0 99

文件型數據庫:
[
    {
        _id:ObjectId("1298478375f8234d")
        ids:1,
        names:子龍,
        ages:84,
        courses:python,
        scores:99
    },
    {
        id:2,
        name:xiaoqinglong,
        age:73,
        course:javascript,
        score1:99
    }
]
View Code

3.初識MongoDBredis

#1.安裝mongoDB bin目錄環境變量
#2.啓動mongoDB:
#mongod (手動建立文件夾) c:\data\db
#mongod --dbpath "E:\Program Files\MongoDB\data\db"
#3.MongoDB的默認端口號:27017  (redis:6379 MySql:3306)

4.mongodb 的指令:sql

#show dbs 查看當前數據庫服務器中的全部數據庫(DB)
#use dbname 建立或使用數據庫
#db 查看當前使用的數據庫 / 代指當前使用的數據庫的名字或對象 
#show tables 查看當前數據庫的 數據表 Collations

5.MongoDB的增刪改查:mongodb

#增:
#db.Collations.insert({"name":"zilong"}) 
#db.Collations.insert([{"name":"zilong"},{"name":"123"}]) 
#// insert 方式 被官方不推薦了
#1.db.Collations.insertOne({}) 只能單行操做插入
#2.db.Collations.insertMany([{},{}]) 根據array(列表)中的元素插入多行數據
#改:
#db.user.update({"name":"酸菜"},{$set:{"name":"老壇酸菜"}})
#db.user.update({"name":"酸菜"},{$set:{"name":"老壇酸菜"}},多條修改:true)
#// update 方式 被官方不推薦了
#db.user.updateOne({"name":"子龍"},{$set:{"name":"趙子龍"}})
#db.user.updateMany({"name":"小青龍"},{$set:{"name":"白虎"}})
#刪除:
#db.user.remove({})
#// remove 方式 被官方不推薦了
#db.user.deleteOne({"name":"白虎"})
#db.user.deleteMany({"name":"翠花兒"})
#查:
#1.db.find({條件:1})
#2.db.findOne({條件:1})
#db.user.findOne({"name":"酸菜","age":1}) 逗號至關於 and

#3.數學比較符:
#$lt 小於
#$gt 大於
#$lte 小於等於
#$gte 大於等於
#find({"字段":{$比較符:值}})
#db.user.find({"age":{$gt:2}}) # where age > 2

6.修改器:數據庫

#$set : 將某個key的value 修改成 某值
#$unset: 刪除字段 {$unset: {test: "" }}
#$inc:{$inc:{"age":100}} 原有值基礎上增長 xxx
#array:
#$push : 向數組Array最後位置插入一條元素 {$push:{"hobby":1234}} [].append(1234)
#$pull : 刪除數組中的某一個元素 {$pull:{"hobby":123}} 
#刪除字典 #db.user.updateOne({"_id":ObjectId("5b98794ec34b9812bcabdde7"),"hobby.age":18},{$unset:{"hobby.$":1}})
#$pop : 刪除數組的第一個或最後一個 
#最後一個:{$pop:{"hobby":1}} 
#第一個:{$pop:{"hobby":-1}} 
#$ :代指符合條件的某數據 array.$ :
#db.user.updateOne({"_id":ObjectId("5b98794ec34b9812bcabdde7"),"hobby.name":"翠花兒"},{$set:{"hobby.$.name":"農婦山泉"}})
#查詢$關鍵字:
#$in: db.user.find({age:{$in:[1,2,3]}}) 字段符合in,array中的數值
#$or: db.user.find({$or:[{age:{$in:[1,2,3,4]}},{name:666}]})
#$all: db.user.find({test:{$all:[1,2]}}) array元素相同便可 或 包含全部$all中的元素

7.數據類型:數組

#基於BSON結構
#string 字符串,Utf8
#integer 整型
#double 雙精度,包含float,MongoDB中不存在Float
#Null 空數據類型
#Date 時間類型 ISODate(2018-9-12 10:45:58)
#Timestamp 時間戳類型 ISODate("123123")
#ObjectId 對象ID Documents 自生成的 _id #ObjectId("5b98794ec34b9812bcabdde7")
#"5b151f85" 代指的是時間戳,這條數據的產生時間
#"364098" 代指某臺機器的機器碼,存儲這條數據時的機器編號
#"09ab" 代指進程ID,多進程存儲數據的時候,很是有用的
#"2e6b26" 代指計數器,這裏要注意的是,計數器的數字可能會出現重複,不是惟一的
#以上四種標識符拼湊成世界上惟一的ObjectID
#只要是支持MongoDB的語言,都會有一個或多個方法,對ObjectID進行轉換
#能夠獲得以上四種信息
#不可以被 JSON 化
#from BSON import ObjectId
#?arrays [] 數組類型 至關於python中的list $pop $push $pull
#?object {name:1} 對象類型 至關於python中的dict
#ps:因爲MongoDB存儲自由度沒有限制,因此咱們程序員要定義好數據格式,儘量少的修改格式(開發階段隨便修改)

8. 排序 跳過 顯示條目服務器

#sort 排序 find().sort(id:-1/1) 1 升序 2 降序 desc
#skip 跳過 find().skip(2) 從三條開始返回
#limit 顯示條目 find().limit(2)只顯示前兩條
#混搭:
#db.user.find({}).sort({age:-1 }).skip(1).limit(2)
#根據age字段進行降序排列,而且跳過第一條,從第二條開始返回,兩條數據

9.pymongo:

#sort("age",pymongo.DESCENDING)
相關文章
相關標籤/搜索