做國際網(wǎng)站要多少錢友情鏈接你會回來感謝我
文章目錄
- 1. 安裝
- (1). 啟動mongodb
- (2). 數(shù)據(jù)庫連接
- 2. 基本命令
- (1) 數(shù)據(jù)庫操作
- (2) 集合操作
- (3) 文檔操作
- 1) 簡單查詢
- 2) 條件查詢
- 3) 投影查詢
- 4) 文檔更新
- 5) 列值增長修改
- 6) 刪除文檔
- 7) 分頁查詢
- 8) 排序查詢
- 9) 正則查詢(模糊查詢)
- 10) 比較查詢
- 11) 包含查詢
- 3. 索引
- (1) 執(zhí)行計劃
1. 安裝
官網(wǎng):https://www.mongodb.com/try/download/community
(1). 啟動mongodb
# 命令行加參數(shù)
mongod --dbpath=..\data\db# 命令行加配置文件,需要先編寫配置文件
mongod -f ..\conf\mongod.conf
(2). 數(shù)據(jù)庫連接
# 默認鏈接本地27017端口
mongo
# 指定連接mongo --host=127.0.0.1 --port=27017
2. 基本命令
(1) 數(shù)據(jù)庫操作
# 查看所有數(shù)據(jù)庫
show dbs 或者 show database# 創(chuàng)建使用數(shù)據(jù)庫,存在使用不存在創(chuàng)建使用
use dbName# 當前數(shù)據(jù)
db# 刪除數(shù)據(jù)庫
db.dropDatabse()
(2) 集合操作
# 集合創(chuàng)建db.createCollection("set1")# 集合查看show collections
# 刪除集合
db.集合名稱.drop()
(3) 文檔操作
# 單文檔插入(json格式插入),如果集合不存在會自動創(chuàng)建
db.set1.insert({"id":1,"name":"zhangsan","age":23})
# 多文檔插入
db.set1.insertMany([{"id":1,"name":"zhangsan","age":23},{"id":2,"name":"lisi","age":24}])
1) 簡單查詢
# 查詢
db.集合名稱.find()
# 查詢一條數(shù)據(jù)
db.集合名稱.findOne()
2) 條件查詢
# 根據(jù)條件查詢(json格式指定條件,如{"id":1})
db.集合名稱.find("條件")# 多條件(與或)
db.集合名稱.find({$and[{"條件集合"}]})
db.集合名稱.find({$or[{"條件集合"}]})
3) 投影查詢
投影: 選擇列
db.集合名稱.find({查詢條件},{投影條件})
例如: db.set1.findOne({},{"name":1})
4) 文檔更新
# 全局更新,使用更新內(nèi)容替換原來的文檔(默認為第一個)
db.集合名.update({條件},{更新內(nèi)容})# 局部更新(只會修改指定字段)
db.集合名稱.update({條件},{$set:{更新內(nèi)容}})
例如: db.set1.update({"name":"wangwu"},{$set:{"age":18}})# 批量修改(上面語句默認修改一條) 使用updateMany命令
db.set1.updateMany({"name":"wangwu"},{$set:{"age":18}})
5) 列值增長修改
# 使用$inc函數(shù)為增加
db.集合名稱.update({條件}{$inc:{"增加字段":增加值}})
6) 刪除文檔
# 會刪除條件匹配的所有數(shù)據(jù)
db.集合名稱.remove({條件})
# 刪除集合中全部數(shù)據(jù)
db.集合名稱.remove()
7) 分頁查詢
# 統(tǒng)計,不帶條件統(tǒng)計所有
db.集合名稱.count({查詢條件})# 查詢前2條記錄
db.集合名稱.find().limit(2)
# 跳過前2條數(shù)據(jù)
db.集合名稱.find().limit(2)# 分頁查詢(配合skip和limit)
db.集合名稱.find().limit(2).skip(3)
8) 排序查詢
# 1為降序,-1為升序
db.集合名稱.find().sort({排序字段:1})
9) 正則查詢(模糊查詢)
db.集合名稱.find({查詢條件:/正則/})
10) 比較查詢
db.集合名稱.find({"字段":{$指令:值}})
/*
指令: > gt< lt>= gte<= lte!= ne
*/
11) 包含查詢
db.集合名稱.find({"字段":{$in:["匹配集合"]}})
3. 索引
索引: 通過特定數(shù)據(jù)結(jié)構(gòu),提高查詢效率(B樹)
查看索引:
# 查詢集合中所有索引
db.集合名稱.getIndexs()
/*
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]
v : 索引版本
key: 索引字段_id: 升序(-1降序)
name: 索引名稱
*/
創(chuàng)建索引:
db.集合名稱.createIndex(keys,[options])
例如: db.set1.createIndex({"id":1})
/*
kyes: 為給哪些key創(chuàng)建索引options(常用): unique: 唯一索引name: 索引名稱
*/
刪除索引:
db.集合名稱.dropIndex({指定名稱或者條件})
例如: db.set1.dropIndex({"id":1})# 刪除所有索引
db.集合名稱.dropIndexes()
(1) 執(zhí)行計劃
相當于mysql的: explain
db.集合名稱.find().explain()