您好,登錄后才能下訂單哦!
接著上篇博文,繼續(xù)學習Ruby操作Mongo數(shù)據(jù)庫,本博文介紹的是MongoDB的基本數(shù)據(jù),即數(shù)據(jù)庫的CRUD操作(創(chuàng)建,查詢,更新,刪除)
1.創(chuàng)建一個集合,插入一個文檔
1.1如果是將單個文檔插入結(jié)果,使用insert_one方法;
選擇集合people,操作語句 collection=client[:people]
定義要插入的文檔數(shù)據(jù)和結(jié)構(gòu),操作語句 doc = { name:'Steve',hobbies:['hiking','tennis','Fly Fishing']}
執(zhí)行result= collection.insert_one(doc)
執(zhí)行 result.n,獲取插入條數(shù),執(zhí)行結(jié)果如下:
1.2 如果是同時插入多個文檔,使用insert_many方法:
定義要插入的文檔數(shù)據(jù),
docs = [ {name: 'Steve1', hobbies: [ 'hiking', 'tennis', 'fly fishing' ] },
{ name: 'Sally', hobbies: ['skiing', 'stamp collecting' ] } ]
執(zhí)行result= collection.insert_many(docs)
執(zhí)行result.insert_count查詢插入條數(shù),執(zhí)行結(jié)果如下:
2. 集合查詢
使用find語句開啟查詢,若不添加任何的查詢過濾條件,將返回集合中的所有文檔
2.1 不適用任何查詢過濾條件
collection.find.each do |document|2.2 使用查詢過濾條件
puts collection.find({name:'Sally'}).first,查詢出滿足條件的第一條記錄,執(zhí)行結(jié)果如下:
3. 更新文檔
更新單個文檔:update_one
更新多個文檔:update_many
兩個方法,第一個參數(shù)為查詢條件,查詢出要更新的文檔;第二個參數(shù)是更新數(shù)據(jù),使用$set來增加或更新一個或多個特定的域;如果不使用$set,則將查詢到的整個文檔更新為設定的更新數(shù)據(jù);
result = collection.update_one( { 'name' => 'Sally' }, { '$set' => { 'phone_number' => "555-555-5555" } } )
puts collection.find( { 'name' => 'Sally' } ).first執(zhí)行結(jié)果如下:
若不使用$set,則將滿足條件的文檔全部替換為要更新的數(shù)據(jù)。
更新多行update_many
result = collection.update_many( {}, { '$set' => { 'age' => 36 } } )
puts result.modified_count
4.刪除文檔
刪除單個文檔:delete_one
刪除多個文檔:delete_many
參數(shù)為查詢條件
刪除單條 result = collection.delete_one( name 'Steve' )
刪除多條 result = collection.delete_many({ name: /$S*/ }),刪除名字name屬性以S開始的文檔
5.最后,增加一個創(chuàng)建索引的操作
創(chuàng)建單個索引:create_one
創(chuàng)建多個索引:create_many
例:collection.indexes.create_one({ name: 1 }, unique: true)
執(zhí)行指令后,index的數(shù)目發(fā)生了變化
至此,Ruby操作MongoDB的入門操作結(jié)束。兩篇博文主要講解了Ruby操作MongoDB數(shù)據(jù)庫的先期準備工作,如何創(chuàng)建數(shù)據(jù)庫連接,如何實現(xiàn)集合文檔的創(chuàng)建,查詢,更新和刪除。并介紹了如何給文檔創(chuàng)建索引,從而優(yōu)化數(shù)據(jù)庫的查詢效率。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。