MongoDB數(shù)據(jù)類型
MongoDB創(chuàng)建/刪除數(shù)據(jù)庫
use DATABASE_NAME
如果數(shù)據(jù)庫不存在,創(chuàng)建數(shù)據(jù)庫介袜,否則切換指定數(shù)據(jù)庫
show dbs
查看所有數(shù)據(jù)庫
db.dropDatabase()
刪除當(dāng)前數(shù)據(jù)庫
MongoDB創(chuàng)建/刪除集合
db.createCollection('name',options)
創(chuàng)建集合
參數(shù)-- 1.name: 要創(chuàng)建的集合名稱 2.options: 可選參數(shù), 指定有關(guān)內(nèi)存大小及索引的選項
2.1 capped 布爾型 (可選)如果為true仪芒,則創(chuàng)建固定集合唁影。固定集合是指有著固定大小的集合,當(dāng)達(dá)到最大值時桌硫,它會自動覆蓋最早的文檔夭咬。當(dāng)該值為 true 時,必須指定 size 參數(shù)
2.2 autoIndexId 布爾 (可選)如為true铆隘,自動在 _id 字段創(chuàng)建索引卓舵。默認(rèn)為 false。
2.3 size 數(shù)值(可選)為固定集合指定一個最大值(以字節(jié)計)膀钠。如果 capped 為 true掏湾,也需要指定該字段。
2.4 max 數(shù)值 (可選)指定固定集合中包含文檔的最大數(shù)量肿嘲。
例如:創(chuàng)建固定集合 mycol融击,整個集合空間大小 6142800 KB, 文檔最大個數(shù)為 10000 個。
db.createCollection("mycol", { capped : true, autoIndexId : true, size : 6142800, max : 10000 } )
show collections
查看已有集合
db.collection.drop()
刪除集合 返回值為true和false
在MongoDB中不需創(chuàng)建集合雳窟。當(dāng)插入一些文檔尊浪,MongoDB會自動創(chuàng)建。###
MongoDB文檔增刪改查
文檔的數(shù)據(jù)結(jié)構(gòu)和JSON基本一樣封救。所有存儲在集合中的數(shù)據(jù)都是BSON格式拇涤。BSON是一種類json的一種二進(jìn)制形式的存儲格式,簡稱Binary JSON。
db.COLLECTION_NAME.insert(document)
向集合中插入文檔
db.COLLECTION_NAME.save(document)
如果不指定 _id 字段 save() 方法類似于 insert() 方法誉结。如果指定 _id 字段鹅士,則會更新該 _id 的數(shù)據(jù)。
update(),save()方法用于更新已存在的文檔惩坑。update()語法格式如下:
db.COLLECTION_NAME.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
參數(shù)說明:
query : update的查詢條件掉盅,類似sql update查詢內(nèi)where后面的也拜。
update : update的對象和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢內(nèi)set后面的
upsert : 可選趾痘,如果不存在update的記錄慢哈,是否插入objNew,true為插入,默認(rèn)是false扼脐,不插入岸军。
multi : 可選,mongodb 默認(rèn)是false,只更新找到的第一條記錄瓦侮,如果這個參數(shù)為true,就把按條件查出來多條記錄全部更新艰赞。
writeConcern :可選,拋出異常的級別
例如:更改title "MongoDB 教程"為 "MongoDB"肚吏。設(shè)置 multi 參數(shù)為 true方妖,會修改多條相同的文檔。否則只會更新找到的第一條文檔罚攀。
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})
save()方法通過傳入的文檔來替換已有文檔党觅。語法格式如下:
db.COLLECTION_NAME.save(
<document>,
{
writeConcern: <document>
}
)
remove()是用來移除集合中的數(shù)據(jù)。語法格式如下:
db.COLLECTION_NAME.remove(
<query>,
<justOne>
)
參數(shù):query :(可選)刪除的文檔的條件斋泄。
justOne : (可選)如果設(shè)為 true 或 1杯瞻,則只刪除一個文檔。
如果你只想刪除第一條找到的記錄可以設(shè)置 justOne 為 1炫掐,如下所示:
db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
如果你想刪除所有數(shù)據(jù)魁莉,可以使用以下方式(類似常規(guī) SQL 的 truncate 命令):
db.COLLECTION_NAME.remove({})
db.COLLECTION_NAME.find(query, projection)
查看已插入文檔
參數(shù):query :可選,使用查詢操作符指定查詢條件
projection :可選募胃,使用投影操作符指定返回的鍵旗唁。查詢時返回文檔中所有鍵值, 只需省略該參數(shù)即可(默認(rèn)省略)痹束。
db.COLLECTION_NAME.find().pretty()
以格式化的方式來顯示所有文檔
db.COLLECTION_NAME.findOne()
返回一個文檔
find()方法可以傳入多個鍵(key)检疫,每個鍵(key)以逗號隔開,即常規(guī)SQL的AND條件祷嘶。語法格式如下:
db.COLLECTION_NAME.find({key1:value1, key2:value2}).pretty()
OR條件語句使用了關(guān)鍵字 $or,語法格式如下:
db.COLLECTION_NAME.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()
條件操作符
(>) 大于 - $gt
(<) 小于 - $lt
(>=) 大于等于 - $gte
(<= ) 小于等于 - $lte
例子:db.COLLECTION_NAME.find({"key" : {$gt : 100}})