在上一篇安裝過程我們已經成功把MongoDB創建為Windows的啟動命令,
在http://127.0.0.1:27017/也看到了成功啟動的結果
那之后呢?
我們在命令行直接輸入
mongo
命令顯示了當前MongoDB的信息,當前連接的不是某一個數據庫,而是我們的本地頁面,那事不宜遲我們趕緊來使用吧
創建數據庫
語法
use DATABASE_NAME
示例
要顯示新創建的數據庫,需要至少插入一個文檔,空的數據庫是不顯示出來的。
刪除數據庫
語法
db.dropDatabase()
示例
插入文檔
文檔的數據結構和JSON基本一樣。
所有存儲在集合中的數據都是BSON格式。
BSON是一種類json的一種二進制形式的存儲格式,簡稱Binary JSON。
語法
db.COLLECTION_NAME.insert(document)
db.collection.insertOne() New in version 3.2
db.collection.insertMany() New in version 3.2
示例
pizza是集合名
當然我們也可以使用一個變量定義數據,再插入數據
document=數據
db.pizza.insert(document)
插入數據后,數據自帶了ID,id定義看這里
更新
一般使用update()方法,但同時還有另外一個save()方法
要說到save()和insert()的區別了
若新增的數據中存在主鍵 ,insert() 會提示錯誤,而save() 則更改原來的內容為新內容。
如:
已存在數據: {_id : 1, " name " : " n1 " },再次進行插入操作時,
insert({_id : 1, " name " : " n2 " }) 會報主鍵重復的錯誤提示
save({ _id : 1, " name " : " n2 " }) 會把 n1 修改為 n2 。
相同點:
若新增的數據中沒有主鍵時,會增加一條記錄。
已存在數據: { _id : 1, " name " : " n1 " },再次進行插入操作時,
insert({ " name " : " n2 " }) 插入的數據因為沒有主鍵,所以會增加一條數據
save({ " name " : " n2 " }) 增加一條數據。
db.collection.updateOne() New in version 3.2
db.collection.updateMany() New in version 3.2
db.collection.replaceOne() New in version 3.2
語法
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
第一個參數是查找條件,第二個參數是修改內容,第三個參數可選。
upsert:如果不存在update的記錄,是否插入objNew,true為插入,默認是false,不插入。
multi : mongodb 默認是false,只更新找到的第一條記錄,如果這個參數為true,就把按條件查出來多條記錄全部更新。
writeConcern :拋出異常的級別。
示例
有關示例出現修改內容的
$set
,這一類叫做修改器,詳情參考這里如果不用$set會怎么樣?
刪除
語法
db.collection.remove(
<query>,
<justOne>
)
如果 MongoDB 是 2.6 版本以后的,語法格式如下:
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
參數說明:
query :(可選)刪除的文檔的條件。
justOne : (可選)如果設為 true 或 1,則只刪除一個文檔。
writeConcern :(可選)拋出異常的級別。
如果要刪除全部數據則>db.col.remove({})
db.collection.deleteOne() New in version 3.2
db.collection.deleteMany() New in version 3.2
示例
查詢
語法
db.collection.find(query, projection)
query :可選,使用查詢操作符指定查詢條件
projection :可選,使用投影操作符指定返回的鍵。查詢時返回文檔中所有鍵值, 只需省略該參數即可(默認省略)。
查詢的進一步學習(排序、索引、投影等)
如果你需要以易讀的方式來讀取數據,可以使用 pretty() 方法,語法格式如下:
>db.col.find().pretty()
pretty() 方法以格式化的方式來顯示所有文檔。
可以傳入多個鍵,等于常規SQL的AND
db.col.find({key1:value1, key2:value2})
一些可能用到的修改器:
$lt <
$lte <=
$gt >
$gte >=
$ne !=
$or OR
>db.col.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()
示例
現在數據庫test的集合pizza中有如下數據:
查找price<90的: