MongoDB 之 手把手教你增刪改查 MongoDB - 2


我們在  MongoDB 之 你得知道MongoDB是個什么鬼 MongoDB - 1  中學習了如果安裝部署一個 MongoDB

如果沒看到我的金玉良言的話,就重新打開一次客戶端和服務端吧

本章我們來學習一下關於 MongoDB的增刪改查

一.MongoDB操作 之 原生ORM,根本不存在SQL語句

創建數據庫:這里和一般的關系型數據庫一樣,都要先建立一個自己的數據庫空間

嗯嗯嗯嗯,我感受到了你內心的驚呼,瞅瞅你們這些沒見過世面的樣子

是的,MongoDB設計的比較隨意,沒有就認為你是在創建,use LuffyCity_Com是不存在的,所以MongoDB就認為你是要創建並使用

這個概念一定要記清楚哦,MongoDB中如果你使用了不存在的對象,那么就等於你在創建這個對象哦

使用了不存在的對象,就代表創建對象,我們使用這一謬論創建一張表(Collection)試試

看來真的不是謬論,真的成功的創建了一個Oldboy的Collection

那么接下來就是在表(Collection)中添加一條數據了,怎么添加呢?

二.MongoDB 之 插入數據(insert     insertOne     insertMany) 之 Collection 點兒出一切操作 之 insert

insert:插入一條或者多條數據,需要帶有允許插入多條的參數,這個方法目前官方已經不推薦嘍

db.Oldboy.insert({"name":"DragonFire","age":20})

insertOne: 插入一條數據,官方推薦

我們可以看出來兩種方法的返回值截然不同對吧

insertMany:插入多條數據,無需參數控制,官方推薦

 

這就是我們向LuffyCity_Com.Oldboy中插入了多條數據:

[{
  "name":"DragonFire", "age":20 },
{
 "name":"WuSir",
 "age":19
}]

這里留下一個數據類型的懸念

插入完成就要查詢

三.MongoDB  之  查詢數據(find findOne) 之 這里沒有findMany

這里不是select,如果你的第一反應是select 證明你關系型數據庫沒白學

find() 無條件查找:將該表(Collection)中所有的數據一次性返回

db.Oldboy.find({name:"WuSir2b"}) 條件查找:name等於WuSir2b的數據,這里會返回多條結果

說到這里,有的同學不禁要問一下:"_id":ObjectId("亂七八糟一道對看着毫無關系的一對字符串") 是什么,我們插入的時候並沒有一個字段(Field)並沒有_id這個,

對了這就是MongoDB自動給我們添加到系統唯一標識"_id" 是一個ObjectId 類型,我們會在數據類型中第一個說到他(MongoDB 之 數據類型 最無聊! But 最有用! MongoDB - 3)

findOne()無條件查找一條數據,默認當前Collection中的第一條數據

findOne({age:19}) : 條件查找一條age等於19的數據,如有多條數據則返回更靠前的數據

查詢數據的時候,發現了有些數據出現錯誤了,要修改怎么辦呢?

 

四.MongoDB 之 修改數據(update updateOne updateMany) 之 跟insert一樣,不推薦update的寫法

update({"name":"DragonFire"},{$set:{"age":21}}):根據條件修改該條數據的內容

把name等於DragonFire中的age改為21,這里要注意的是({"條件"},{"關鍵字":{"修改內容"}}),其中如果條件為空,那么將會修改Collection中所有的數據

關於$set關鍵字的解釋就是,本節最后再說,留個懸念

updateOne({"age":19},{$set:{"name":"WSSB"}}):根據條件修改一條數據的內容,如出現多條,只修改最高前的數據

把age等於19的所有數據中第一條數據的name改為WSSB

updateMany({"age":19},{$set:{"name":"pig_qi"}}):根據條件修改所有數據的內容,多條修改

把age等於19的所有數據中的name改為WSSB

上述中有一個$set的懸念,這個懸念呀,可能要留到再往后一些了

但是$set:{"name":"WSSB"}我還是要解釋一下: $set 是update時的關鍵字,表示我要設置name屬性的值為"WSSB"

那么我們之前說過MongoDB的靈活性,沒有就代表我要創建,所以說如果該條Documents沒有name屬性,他就會自動創建一個name屬性並且賦值為"WSSB"

更改了半天,我覺得,這些數據我都不想要了,該怎么辦呢?

 

四.MongoDB  之  刪除數據(remove) 之 如果你什么都不寫,你講失去全部的生命力

remove({}):無條件刪除數據,這里要注意了,這是刪除所有數據,清空Collection

當然了,我現在還不會操作,你看到的截圖是我全部都寫完之后的截圖,如果跟着操作的話,那么你實在是太傻了,哈哈哈哈哈哈哈哈

 

如果你的數據全沒了,那么請再練習一次insertMany([{"name":"DragonFire"}])吧,你多練習一次,總比馬上忘記要強吧

remove({"name":"DragonFire"}) : 條件刪除name等於"DragonFire"的所有Document

那么到這里呢,增刪改查就已經完事兒了

之后我們來說一下MongoDB的數據類型,跟你們透漏一下,MongoDB的數據類型,老(te)有(bie)意(wu)思(liao)了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM