1. 程式人生 > 其它 >戀愛論(轉)

戀愛論(轉)

轉:https://www.cnblogs.com/whiteBear/p/12711806.html

建立資料庫
語法
MongoDB建立資料庫的語法格式如下:

use DATABASE_NAME

如果資料庫不存在,則建立資料庫,負責切換到指定資料庫
例子:

發現我們建立的資料庫data並不在資料庫列表中,要顯示它,就必須要往data資料庫中插入資料。

這裡要說明下,MongoDB中預設資料庫為test,如果沒有建立資料庫,直接將資料(集合)放入未建立的資料庫中,這時,MongoDB是將該集合存放在了test資料庫中,而並沒有建立該資料庫,再把集合放進去(這麼複雜,它好像還做不來_

上例,我想往資料庫中存入集合,但我忘記建立該資料庫,這條語句將會將集合a存入到test資料庫

刪除資料庫
語法
MongoDB刪除資料庫的語法格式為:

db.dropDatabase()

刪除當前資料庫,預設為test,可使用db命令檢視當前資料庫名。
例子:
以刪除剛才我們建立的data資料庫為例

可通過show dbs命令檢視資料庫是否刪除成功

刪除集合
語法格式:

db.collection.drop()

例子中插入兩個集合a,b,使用該命令將集合a刪除

在刪除資料庫與集合操作中,當將集合刪除完之後,使用show dbs檢視資料庫時,發現當前資料庫已經沒有了,給我種感覺,資料庫因集合存在而存在,也因集合消失而消失,但集合卻未因資料庫存在而存在,即使沒有資料庫,它還可以棲息於test資料庫中

插入文件
文件的資料結構和JSON基本一樣。所有儲存在集合中的資料都是BSON格式。
BSON是一種類json的一種二進位制形式的儲存格式,簡稱Binary JSON
MongoDB使用insert()或save()方法向集合中插入文件,語法如下:

db.COLLECTION_NAME.insert(document)

例子:
以下文件可以儲存在data資料庫的data1集合中

data1集合,如果不在該資料庫中,MongoDB會自動建立該集合並插入文件
db.data1.find()檢視data1集合中資料(文件)
也可以將資料定義為一個變數,然後插入集合

執行插入操作並檢視

db.data1.save(document)使用方法與insert類似。如果不指定_id欄位save()方法類似於insert()方法。如果指定_id欄位,則會更新_id欄位 **更新文件** MongoDB使用update()函式更新

db.collection.update(criteria,objNew,upsert,multi)

update()函式接受一下四個引數:

  • criteria:update的查詢條件,類似SQL update查詢內where後面的
  • objNew:update的物件和一些更新的操作符(如,,inc...)等,也可以理解為sql update查詢內set後面的
  • upsert:如果不存在update的記錄,是否插入objNew,true為插入,預設為false,不插入
  • multi:MongoDB預設是false,只更新找到的第一條記錄,如果這個引數為true,就把按條件查出來的多條記錄全部更新

向data資料庫中插入名為“userDetails”的集合,以下是要插入的資料:

document=({"user_id" : "MNOPBWN","password" :"MNOPBWN" ,"date_of_join" : "16/10/2010" 
,"education" :"M.C.A." , "profession" : "CONSULTANT","interest" : "MUSIC","community_name" :["MODERN MUSIC", 
"CLASSICAL MUSIC","WESTERN MUSIC"],"community_moder_id" : ["MR. BBB","MR. JJJ","MR MMM"],"community_members" : 
[500,200,1500],"friends_id" : ["MMM123","NNN123","OOO123"],"ban_friends_id" :["BAN123","BAN456","BAN789"]});
 document=({"user_id" : "QRSTBWN","password" :"QRSTBWN" ,"date_of_join" : "17/10/2010" ,"education" :"M.B.A." 
, "profession" : "MARKETING","interest" : "MUSIC","community_name" :["MODERN MUSIC", "CLASSICAL MUSIC","WESTERN 
MUSIC"],"community_moder_id" : ["MR. BBB","MR. JJJ","MR MMM"],"community_members" : [500,200,1500],"friends_id" :
 ["MMM123","NNN123","OOO123"],"ban_friends_id" :["BAN123","BAN456","BAN789"]});

使用update()命令更新資料
目標:將"userdetails"集合中"user_id"為"QRSTBWN"的"password"欄位修改為"NEWPASSWORD"。(如果criteria引數匹配集合中的任何一條資料,它將會執行替換命令,否則會插入一條新的資料。)

檢視更新後的資料:

若想值修改某個欄位,而不希望將整個文件中的資料重寫一遍,可採用下面的方法:
只更新一條記錄:

全部更新:

只新增一條:

全部新增進去:

$inc 欄位值加1

刪除文件
MongoDB remove()函式用來移除集合中的資料
MongoDB資料更新可以使用update()函式。在執行remove()函式前先執行find()命令來判斷執行的條件是否正確,這是一個比較好的習慣。
remove()方法的基本語法格式如下:

db.collection.remove(
    <query>,
    <justOne>
)

引數說明:

  • query:(可選)刪除的文件的條件
  • justOne:(可選)為true或1,則只刪除一個文件
  • writeConcern:(可選)丟擲異常的級別

可看到刪除了三條資料
如果想只刪除一條找到的記錄,可將justOne設定為1,如下:
db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
若想刪除所有資料,可採用以下方式:

查詢文件
語法
MongoDB查詢資料的語法格式如下:

db.COLLECTION_NAME.find()

find() 方法以非結構化的方式來顯示所有文件。
如果你需要以易讀的方式來讀取資料,可以使用 pretty() 方法,語法格式如下:

db.col.find().pretty()

pretty() 方法以格式化的方式來顯示所有文件。
例子:
以上面用到的userdetail集合為例:

除了 find() 方法之外,還有一個 findOne() 方法,它只返回一個文件。


MongoDB 與 RDBMS Where 語句比較

MongoDB AND 條件
MongoDB 的 find() 方法可以傳入多個鍵(key),每個鍵(key)以逗號隔開,及常規 SQL 的 AND 條件。
語法格式如下:

db.col.find({key1:value1, key2:value2}).pretty()

例子:

相當於where語句: where name = "" AND education=""


MongoDB OR條件
MongoDB OR 條件語句使用了關鍵字$or,語法格式如下:

db.col.find(
   {
      $or: [
	     {key1: value1}, {key2:value2}
      ]
   }
).pretty()

AND 和 OR 聯合使用

參考:https://www.w3cschool.cn/mongodb/mongodb-query.html