MongoDB學習(一)MongoDB常用命令
1.建立資料庫
建立語法:
use DATABASE_NAME
如果資料庫不存在,則建立資料庫,否則切換到指定資料庫。
建立yyf_mongodb資料庫,db顯示當前資料庫
> use yyf_mongodb
switched to db yyf_mongodb
> db
yyf_mongodb
如果你想檢視所有資料庫,可以使用 show dbs 命令:
> show dbs
local 0.078GB
可以看到,我們剛建立的資料庫 runoob 並不在資料庫的列表中,要顯示此資料庫,需要向其中插入資料
> db.yyf_mongodb.insert ({"name":"123"})
WriteResult({ "nInserted" : 1 })
> show dbs
local 0.078GB
yyf_mongodb 0.078GB
2.刪除資料庫
刪除語法:
db.dropDatabase()
刪除建立的yyf_mongodb資料庫
#切換到yyf_mongodb資料庫
> use yyf_mongodb
switched to db yyf_mongodb
#執行刪除命令
> db.dropDatabase()
{ "dropped" : "yyf_mongodb", "ok" : 1 }
通過 show dbs 命令資料庫是否刪除成功:
> show dbs
local 0.078GB
3.刪除集合
集合刪除語法格式如下:
db.collection.drop()
4.插入文件
文件的資料結構和JSON基本一樣。
MongoDB 使用 insert() 或 save() 方法向集合中插入文件,語法如下:
db.COLLECTION_NAME.insert(document)
向yyf_mongodb中插入文件:
> db.col.insert({url:"http://localhost",
description:'127.0.0.1' ,
by:'55'})
WriteResult({ "nInserted" : 1 })
集合名為col,如果該集合不在該資料庫中, MongoDB 會自動建立該集合並插入文件
檢視集合:
> db.col.find()
{ "_id" : ObjectId("59cdf6b516664e819555461d"), "url" : "http://localhost", "description" : "127.0.0.1", "by" : "55" }
3.2 版本後還有以下幾種語法可用於插入文件:
db.collection.insertOne():向指定集合中插入一條文件資料
db.collection.insertMany():向指定集合中插入多條文件資料
db.collection.insertMany([{"b": 3}, {'c': 4}])
5.更新文件
update() 方法
update() 方法用於更新已存在的文件。語法格式如下:
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
引數說明:
query : update的查詢條件,類似sql update查詢內where後面的。
update : update的物件和一些更新的操作符(如
upsert : 可選,這個引數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,預設是false,不插入。
multi : 可選,mongodb 預設是false,只更新找到的第一條記錄,如果這個引數為true,就把按條件查出來多條記錄全部更新。
writeConcern :可選,丟擲異常的級別。
向集合中插入文件:
> db.col.insert({url:"http://localhost", description:'127.0.0.1', by:'55'})
WriteResult({ "nInserted" : 1 })
更新文件:
> db.col.update({'by':'55'},{$set:{'by':'66'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.col.find()
{ "_id" : ObjectId("59cdfbb616664e819555461f"), "url" : "http://localhost", "description" : "127.0.0.1", "by" : "66" }
以上語句只會修改第一條發現的文件,如果你要修改多條相同的文件,則需要設定 multi 引數為 true。
>db.col.update({'by':'55'},{$set:{'by':'66'}},{multi:true})
6.刪除文件
remove() 方法的基本語法格式如下所示:
db.collection.remove(
<query>,
<justOne>
)
如果你的 MongoDB 是 2.6 版本以後的,語法格式如下:
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
引數說明:
query :(可選)刪除的文件的條件。
justOne : (可選)如果設為 true 或 1,則只刪除一個文件。
writeConcern :(可選)丟擲異常的級別。
移除by為66的文件
> db.col.remove({'by':'66'})
WriteResult({ "nRemoved" : 2 })
> db.col.find()
... #無資料
如果你只想刪除第一條找到的記錄可以設定 justOne 為 1,如下所示:
>db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
現在官方推薦使用 deleteOne() 和 deleteMany() 方法。
如刪除集合下全部文件:
db.inventory.deleteMany({})
刪除 status 等於 A 的全部文件:
db.inventory.deleteMany({ status : "A" })
刪除 status 等於 D 的一個文件:
db.inventory.deleteOne( { status: "D" } )
7.查詢文件
MongoDB 查詢資料的語法格式如下:
db.collection.find(query, projection)
query :可選,使用查詢操作符指定查詢條件
projection :可選,使用投影操作符指定返回的鍵。查詢時返回文件中所有鍵值, 只需省略該引數即可(預設省略)。
如果你需要以易讀的方式來讀取資料,可以使用 pretty() 方法,語法格式如下:
>db.col.find().pretty()
and條件查詢:
>db.col.find({key1:value1, key2:value2}).pretty()
or 條件查詢:
>db.col.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()