bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

MongoDB的使用

今天來學習一個新的數據庫,叫做MongoDB數據庫,我們先來了解一下MongoDB數據庫的概念,再一起學習如何使用MongoDB數據庫吧~

10年積累的成都做網站、網站制作經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站設計后付款的網站建設流程,更有淮北免費網站建設讓你可以放心的選擇與我們合作。

MongoDB的概念

MongoDB的使用

  • MongoDB是專為 可擴展性、高性能和高可用性 而設計的數據庫,MongoDB的庫中由一個或多個collections組成,這里的collection相當于關系型數據庫中的表;

  • MongoDB中的記錄是一個document文檔,它是由字段和值對組成的數據結構,MongoDB文檔類似于JSON對象,字段的值可以包括其他文檔,數組和文檔數組;

  • MongoDB支持的數據類型有: Int、Double, String, Object, Array, Binary data, Undefined, Boolean, Date, Null 等;

MongoDB的命令介紹

db.help()                    查看庫級別的命令
db.mycoll.help()             查看collection級別的命令
sh.help()                    查看發片的命令
rs.help()                    查看副本集的命令
help admin                   查看管理相關的命令
help connect                 查看連接到數據庫的命令
help keys                    keys的相關命令
help misc                    misc things to know
help mr                      查看mapreduce相關的命令
show dbs                     查看當前的數據庫
show collections             查看數據庫中所有的collections
show users                   當前的數據庫中有哪些用戶
show profile                 顯示profile信息,顯示性能評估工具
show logs                    顯示日志名信息
show log [name]              顯示指定查看對應日志的信息
use <db_name>                進入某庫,設定某庫為當前庫
db.foo.find()                列出當前collection中所有的document
db.foo.find( { a : 1 } )     列出當前collection中a = 1的document
it                           result of the last line evaluated; use to further iterate
DBQuery.shellBatchSize = x   設置顯示的item的行數
exit                         退出Mongo shell

CRUD操作
  • db.students.insert() :插入一條數據,默認會創建students表;

  • show collections :顯示當前的表;

  • db.students.stats() :顯示students表的數據信息;

  • db.students.find() :查詢插入的各個字段;

  • db.students.count() :查看students表中有多少個document;

Collection的簡單查詢過濾操作


db.students.remove({"name": "Angle"})
# 刪除表
db.students.drop()
# 刪除當前數據庫
db.dropDatabase()

find()的高級用法

比較操作:

  • $gt :大于;

db.students.find({age: {$gt: 10}})  age大于10

  • $gte :大于等于;

db.students.find({age: {$gte: 20}})  age大于等于20

  • $lt :小于;

db.students.find({age: {$lt: 30}})  age小于30

  • $lte :小于等于;

db.students.find({age: {$lte: 40}})  age小于等于40

  • $in :在范圍內;

db.students.find({age: {$in: [10, 20]}})  age在[10, 20]的document

  • $nin :不在范圍內;

db.students.find({age: {$nin: [30, 40]}})  age不在[30, 40]的document

邏輯運算:

  • $or :或運算;

db.students.find({$or: [{name: {$eq: "robby"}}, {age: {$nin: [40,50]}}]})

  • $and :與運算;

  • $not :非運算;

  • $nor: 取反運算;

元素查詢:
  • $exists :查詢存在某字段的document;

如查詢存在name字段的document
db.students.find({name: {$exists: true}})

  • $mod :取摸;

  • $type :返回指定字段的值類型為指定類型的document;

update()的高級用法
  • $set :更新,或插入字段的值;

將name為Tom的這個document的age字段的值改為20
db.students.update({name: "Tom"}, {$set: {age: 20}})

  • $unset :刪除指定字段;

刪除name字段為Tom的document的age為25的字段
db.students.update({name: "Tom"}, {$unset: {age: 25}}

  • $rename :修改字段名;

 給name字段為Tom的document增加一個字段sex且值為男
db.students.update({name: "Tom"}, {$inc: {sex: "男"}})

createUser()方法

# 創建用戶
db.createUser({user:"root",pwd:"123456", roles: [{ role: "root", db: "admin" }]}); 
# 刪除用戶
db.system.users.remove({user:"root"});

  • 方法中的 user 用于指定用戶名、 pwd 用于設置密碼、 roles 用于指定用戶的角色,可以用一個空數組給新用戶設定空角色、 db 用于指定用戶對哪個數據庫具有管理員權限;

  • createUser()方法 為數據庫創建新用戶,如果用戶已存在于數據庫中,則db.createUser()返回重復的用戶錯誤;

角色種類說明
  • 數據庫用戶角色 read (允許用戶讀取指定數據庫)、 readWrite (允許用戶讀寫指定數據庫 );

  • 數據庫管理角色 dbAdmin (允許用戶在指定數據庫中執行管理函數)、 dbOwner userAdmin (允許用戶向system.users集合寫入);

  • 集群管理角色 clusterAdmin (賦予用戶所有分片和復制集相關函數的管理權限)、 clusterManager clusterMonitor hostManager

  • 備份恢復角色 backup restore

  • 所有數據庫角色 readAnyDatabase readWriteAnyDatabase (賦予用戶所有數據庫的讀權限 )、 userAdminAnyDatabase (賦予用戶所有數據庫的讀寫權限 )、 dbAdminAnyDatabase (賦予用戶所有數據庫的dbAdmin權限);

  • 超級用戶角色 root (超級賬號,超級權限);

  • 內部角色 __system

Mongodb Index 介紹
  • MongoDB中的索引與MySQL中的索引有類似的功能,將表中的字段添加索引,索引會將字段做排序,依次索引能夠大大提高MongoDB的查詢能力

  • 索引是特殊的數據結構,它以易于遍歷的形式存儲集合數據集的一小部分,索引存儲特定字段或字段集的值,按字段值排序;

  • 索引條目的排序支持有效的等式匹配和基于范圍的查詢操作;

  • MongoDB可以使用索引中的順序返回排序結果;


db.students.createIndex({name: 1})
給name字段創建索引, 1為指定按升序創建索引,如果你想按降序來創建索引指定為-1即可
# 查看索引
db.students.getIndexes()
# 查看是否使用到了索引(由于MongoDB調優)
db.students.find({"name": "Angle"}).explain()  # winningPlan的stage為fetch,非COLLSCAN(字段掃描)
# 刪除索引
db.student.dropIndex("name_1")
# 給name字段創建一個唯一鍵索引,那么再給students表增加一條行document,且name與之前存在的document的name值相同,那么就會報錯, 如:增加一條document
db.students.createIndex({name: 1}, {unique: true})
db.students.insert({name: "Angle"})
報錯的信息如下:
WriteResult({
        "nInserted" : 0,
        "writeError" : {
                "code" : 11000,
                "errmsg" : "insertDocument :: caused by :: 11000 E11000 duplicate key error index: test.students.$name_1  dup key: { : \"Angle\" }"
        }
})

參考: https://www.9xkd.com/user/plan-view.html?id=1609408774

文章標題:MongoDB的使用
本文來源:http://vcdvsql.cn/article44/iijdhe.html

成都網站建設公司_創新互聯,為您提供關鍵詞優化自適應網站網站導航定制網站網站改版網站設計

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設