mongodb是一個用來存儲管理數據的軟件正則表達式
他是一個 c/s 架構的軟件,是一個網絡類型的軟件
若是要是使用mongodb的話,首先須要開啓mongodb的服務端,而後經過客戶端軟件去鏈接服務器sql
1.要建立一個當前應用的數據庫:database
database - Excel
table - Sheet1 - 區分存儲相同類型的數據的集合
row - document - 一條記錄
column - field - 列,字段mongodb
MongoDB 數據類型數據庫
下表爲MongoDB中經常使用的幾種數據類型。
數據類型 描述
String 字符串。存儲數據經常使用的數據類型。在 MongoDB 中,UTF-8 編碼的字符串纔是合法的。
Integer 整型數值。用於存儲數值。根據你所採用的服務器,可分爲 32 位或 64 位。
Boolean 布爾值。用於存儲布爾值(真/假)。
Double 雙精度浮點值。用於存儲浮點值。
Min/Max keys 將一個值與 BSON(二進制的 JSON)元素的最低值和最高值相對比。
Arrays 用於將數組或列表或多個值存儲爲一個鍵。
Timestamp 時間戳。記錄文檔修改或添加的具體時間。
Object 用於內嵌文檔。
Null 用於建立空值。
Symbol 符號。該數據類型基本上等同於字符串類型,但不一樣的是,它通常用於採用特殊符號類型的語言。
Date 日期時間。用 UNIX 時間格式來存儲當前日期或時間。你能夠指定本身的日期時間:建立 Date 對象,傳入年月日信息。
Object ID 對象 ID。用於建立文檔的 ID。
Binary Data 二進制數據。用於存儲二進制數據。
Code 代碼類型。用於在文檔中存儲 JavaScript 代碼。
Regular expression 正則表達式類型。用於存儲正則表達式。express
命令:
db : 查看當前所在的數據庫
show dbs : 顯示全部數據庫的列表
use <db名稱> : 選擇進入指定的db,若是數據庫不存在,則會先建立,若是這個數據裏面沒有數據,可能顯示不出來數組
插入:
db.<COLLECTION_NAME>.insert({}) : 向指定的集合(表)中插入一條數據,若是該集合不存在,則會自動建立服務器
更新:
db.<COLLECTION_NAME>.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)網絡
query : update的查詢條件,相似sql update查詢內where後面的。
update : update的對象和一些更新的操做符(如$,$inc...)等,也能夠理解爲sql update查詢內set後面的
upsert : 可選,這個參數的意思是,若是不存在update的記錄,是否插入objNew,true爲插入,默認是false,不插入。
multi : 可選,mongodb 默認是false,只更新找到的第一條記錄,若是這個參數爲true,就把按條件查出來多條記錄所有更新。
writeConcern :可選,拋出異常的級別。架構
db.Users.update( {username:'leo'},{ $set:{age:36} } );iphone
查詢
db.COLLECTION_NAME.find()
db.COLLECTION_NAME.find().pretty() :格式化打印數據
1 等於 {<key>:<value>} db.col.find({"by":"菜鳥教程"}).pretty() where by = '菜鳥教程' 2 小於 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50 3 小於或等於 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50 4 大於 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50 5 大於或等於 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50 6 不等於 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50
1 and 2 db.col.find({key1:value1, key2:value2}).pretty() 3 or 4 db.col.find({$or:[{key1:value1},{key1:value1}]}); 5 6 7 刪除 8 db.col.remove({})
limit(number) : 獲取指定條數的記錄
skip(number) : 指定跳過多少條記錄
limit+skip能夠實現分頁的效果
好比有100條數據
每頁顯示5條
須要顯示第三頁的數據
limit(5).skip(10);
添加字段索引,使查詢速度變快
db.<COLLECTION_NAME>.ensureIndex({KEY:1})
模糊查詢
使用正則
db.<COLLECTION_NAME>.find(KEY: {$regex: '正則字符串'})
db.<COLLECTION_NAME>.find(KEY: /正則/)
添加
查詢
修改
刪除
條件
排序
限制limit
skip
模糊匹配
1 添加3條商品信息 2 db.Goods.insert({name:'iphone','price': 4000}); 3 db.Goods.insert({name:'imac','price': 10000}); 4 db.Goods.insert({name:'iphone6','price': 5000}); 5 db.Goods.insert({name:'iphone6s','price': 6000}); 6 修改 7 db.Goods.update( {name:'iphone'}, {$set:{price:2000}} ); 8 刪除 9 db.Goods.remove({name:'iphone6s'}); 10 查詢 11 db.Goods.find({name: 'iphone'}).pretty(); 12 db.Goods.find({name: /iphone/}).pretty(); 13 db.Goods.find({price: {$gt: 3000}}).pretty(); 14 db.Goods.find().limit(1).pretty(); 15 db.Goods.find().skip(1).pretty(); 16 db.Goods.find().limit(1).skip(1).pretty(); 17 db.Goods.find().sort({price: -1}).pretty();