1. 程式人生 > >MongoDB學習(一)MongoDB常用命令

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的物件和一些更新的操作符(如,inc…)等,也可以理解為sql update查詢內set後面的

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()