您好,登錄后才能下訂單哦!
接著上篇博文,繼續學習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,獲取插入條數,執行結果如下:
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查詢插入條數,執行結果如下:
2. 集合查詢
使用find語句開啟查詢,若不添加任何的查詢過濾條件,將返回集合中的所有文檔
2.1 不適用任何查詢過濾條件
collection.find.each do |document|2.2 使用查詢過濾條件
puts collection.find({name:'Sally'}).first,查詢出滿足條件的第一條記錄,執行結果如下:
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執行結果如下:
若不使用$set,則將滿足條件的文檔全部替換為要更新的數據。
更新多行update_many
result = collection.update_many( {}, { '$set' => { 'age' => 36 } } )
puts result.modified_count
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)
執行指令后,index的數目發生了變化
至此,Ruby操作MongoDB的入門操作結束。兩篇博文主要講解了Ruby操作MongoDB數據庫的先期準備工作,如何創建數據庫連接,如何實現集合文檔的創建,查詢,更新和刪除。并介紹了如何給文檔創建索引,從而優化數據庫的查詢效率。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。