Ruby2.3.3操作MongoDB入門(Mongo驅動版本2.4.3)-數據庫CRUD(創建、查詢、更新、刪除)

接着上篇博文,繼續學習Ruby操作Mongo數據庫,本博文介紹的是MongoDB的基本數據,即數據庫的CRUD操作(創建,查詢,更新,刪除)

1.創建一個集合,插入一個文檔

1.1如果是將單個文檔插入結果,使用insert_one方法;

選擇集合people,操作語句 collection=client[:people]

定義要插入的文檔數據和結構,操作語句 doc = { name:'Steve',hobbies:['hiking','tennis','Fly Fishing']}

執行result= collection.insert_one(doc)

執行 result.n,獲取插入條數,執行結果如下:

wKiom1mITV7R1whpAAA4EIaYf_0691.png-wh_50

1.2 如果是同時插入多個文檔,使用insert_many方法:

定義要插入的文檔數據,

docs = [ {name: 'Steve1', hobbies: [ 'hiking', 'tennis', 'fly fishing' ] },

        { name: 'Sally', hobbies: ['skiing', 'stamp collecting' ] } ]

執行result= collection.insert_many(docs)

執行result.insert_count查詢插入條數,執行結果如下:

wKioL1mIT1ag7***AABeZxHzbh0463.png-wh_50


2. 集合查詢

使用find語句開啓查詢,若不添加任何的查詢過濾條件,將返回集合中的所有文檔

2.1 不適用任何查詢過濾條件

collection.find.each do |document|

2.2 使用查詢過濾條件

puts collection.find({name:'Sally'}).first,查詢出滿足條件的第一條記錄,執行結果如下:

wKioL1mIUsbhqGRnAAAzLF6guz8395.png-wh_50


3. 更新文檔

更新單個文檔:update_one

更新多個文檔:update_many

兩個方法,第一個參數爲查詢條件,查詢出要更新的文檔;第二個參數是更新數據,使用$set來增加或更新一個或多個特定的域;如果不使用$set,則將查詢到的整個文檔更新爲設定的更新數據;

result = collection.update_one( { 'name' => 'Sally' }, { '$set' => { 'phone_number' => "555-555-5555" } } )

puts collection.find( { 'name' => 'Sally' } ).first

執行結果如下:

wKiom1mIVv3QhZlPAABy0zEBJg4265.png-wh_50

若不使用$set,則將滿足條件的文檔全部替換爲要更新的數據。

更新多行update_many

result = collection.update_many( {}, { '$set' => { 'age' => 36 } } )

puts result.modified_count

wKiom1mIWrnSkPf6AAAvalUxCGc556.png-wh_50


4.刪除文檔

刪除單個文檔:delete_one

刪除多個文檔:delete_many

參數爲查詢條件

刪除單條  result = collection.delete_one( name 'Steve' )

刪除多條   result = collection.delete_many({ name: /$S*/ }),刪除名字name屬性以S開始的文檔


5.最後,增加一個創建索引的操作

創建單個索引:create_one

創建多個索引:create_many

例:collection.indexes.create_one({ name: 1 }, unique: true)


例:collection.indexes.create_many([
   { key: { name: 1 } , unique: true },
   { key:  { hobbies: 1 } },
 ])

wKioL1mIXM2B5vPrAABvubSlMFk351.png-wh_50

執行指令後,index的數目發生了變化

至此,Ruby操作MongoDB的入門操作結束。兩篇博文主要講解了Ruby操作MongoDB數據庫的先期準備工作,如何創建數據庫連接,如何實現集合文檔的創建,查詢,更新和刪除。並介紹瞭如何給文檔創建索引,從而優化數據庫的查詢效率。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章