mongo基本操作

来源:https://www.cnblogs.com/Selling-fish-bears/archive/2018/07/12/9300541.html
-Advertisement-
Play Games

概念 庫級操作 #集合操作 文檔操作 插入 查詢 更新 刪除 mongodb配置 mongodb許可權 ...


概念

RDBMS(關係型資料庫管理系統)MongoDB
Database(資料庫) Database(資料庫)
Table(表) Collection(集合)
Record(記錄) Document(文檔)

庫級操作

use DATABASE            #切換/創建庫        
show dbs                #查看所有資料庫(空庫不會顯示)
db.dropDatabase()        #刪除當前資料庫
db                        #查看當前所在庫

#集合操作

db.createCollection(name, options)    #創建集合   用引號引起來
    capped:類型為boolean,如果為true則為創建一個固定大小的集合,當集合中的數據條目達    到最大時自動覆蓋以前的條目。
    size:指定集合位元組最大值,當capped為true時需要指定。單位為byte
    max:指定集合中數據的最大條數。    
    db.createCollection(
    "BizUser",
    {capped:1,autoIndexID:1,size:6142800,max:10000}
    )

show collections                #查看當前資料庫的集合

db.集合名稱.drop()                #刪除集合

文檔操作

插入

db.集合名稱.insert(document)    #插入文檔,    集合不存在會自動創建, 不能插入重覆id的數據

db.student.insert({_id:1, name:'bear', age:18})


db.student.insert([
    {name:'juhao', sex:'男', age:18},
    {name:'nanbei', sex:'男', age:19},
    {name:'budong', sex:'男', age:20},
])

查詢

db.集合名稱.find()                #查詢所有
db.集合名稱.find().pretty()        #結構化顯示

db.集合.find({name:10}).pretty()            where name = 10
db.集合.find({name:{$ne:10} }).pretty()        where name != 10
db.集合.find({name:{$gt:10} }).pretty()        where name > 10
db.集合.find({name:{$lt:10} }).pretty()        where name < 10
#後面加個e就是加等於



#and邏輯
{$and:[{expression1}, {expression1}, ...]   }
#or邏輯
{$or:[{expression1}, {expression1}, ...]   }


#where sex='' and age > 18
db.table.find({
    $and:[
        {sex:'男'}, {age:{$gt:18}}
    ]
})


#where sex='' or age =18
db.table.find({
    $or:[
        {sex:'女'}, {age:18}
    ]
})


#where (sex='' and age=18) or (sex='' and age>18)
db.table.find({
    $or:[
        {$and:[{sex:'女'}, {age:18}]},
        {$and:[{sex:'男'}, {age:{$gt:18}}]}
    ]    
})

更新

db.table.update({sex:''},[{age:20})    #更新第一條找到的文檔全部值  無multi

db.table.update({sex:'男'}, {$set:{age:666, agee:6666}})  #修改第一條找到的文檔,不存在就添加
                           
db.table.update({sex:'男'}, {$set:{sex:'女'}}, {multi:true})    #更新全部

刪除

db.集合名稱.remove( <query>, <justOne> )
db.table.remove({age:18})        #刪除所有滿足條件的
db.table.remove({sex:''}, {justOne:true})    #刪除一條

mongodb配置

vim /etc/mongodb.conf
    dbpath                    #數據存放的地址
    logpath                    #日誌存放的地址
    bind_ip = 0.0.0.0         #監聽IP
    auth = True                #許可權認證

mongodb許可權

MongoDB預設設置為無許可權訪問限制

#進入user admin

#創建管理員用戶,用來管理用戶,可以通過這個角色來創建、刪除用戶,用戶只具有管理用戶和角色的許可權。
db.createUser({
    user:'bear',
    pwd:'123456',
    roles:[{role:"userAdminAnyDatabase", db:"admin"}]
})
#role:指定用戶的角色,db指定庫


db.createCollection('student')    #創建一個庫
use student                #進入

#給該庫添加用戶
db.createUser({            
    user:'test',
    pwd:'test',
    roles:[{
        role:'readWrite',
        db:'student'
    }]
})


show users                #查看當前庫下的用戶
db.dropUser('username')    #刪除某個用戶
db.dropAllusers()        #刪除當前庫的所有用戶
db.getUsers()            #查詢所有用戶

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、從官網下載mysql-5.7.22-winx64.zip壓縮文件,解壓到自定義目錄。 二、將mysql安裝目錄的下的bin目錄 添加到系統path環境變數。 三、配置my.ini 文件,放置於mysql的安裝目錄之內。文件內容如下: 說明: basedir為mysql安裝目錄,datadir為數 ...
  • 前言:我用的是wafer2 node.解決方案 下麵連接有環境配置及搭建流程(https://github.com/tencentyun/wafer2-quickstart-nodejs) ,連接是官方的可以點擊 一、配置mysql 資料庫連接參數 打開 server下麵的config.js use ...
  • 資料庫sql優化總結-百萬級資料庫優化方案+數據分析 有三張百萬級數據表 知識點表(ex_subject_point)9,316條數據 試題表(ex_question_junior)2,159,519條數據 有45個欄位 知識點試題關係表(ex_question_r_knowledge)3,156,... ...
  • 摘要: 本文著重介紹 DRDS 執行計劃中各個操作符的含義,以便用戶通過查詢計划了解 SQL 執行流程,從而有針對性的調優 SQL。 DRDS分散式SQL引擎 — 執行計劃介紹 前言 資料庫系統中,執行計劃是對 SQL 如何執行的形式化表示,往往由若幹關係操作符構成,用戶可以通過對應的 EXPLAI ...
  • Oracle簡介Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關係資料庫管理系統。它是在資料庫領域一直處於領先地位的產品。可以說Oracle資料庫系統是目前世界上流行的關係資料庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小、微 ...
  • 返回 "ProxySQL系列文章:http://www.cnblogs.com/f ck need u/p/7586194.html"   1.關於ProxySQL路由的簡述 當ProxySQL收到前端app發送的SQL語句後,它需要將這個SQL語句(或者重寫後的SQL語句)發送給後端的M ...
  • 一、進入MySQL與退出MySQL 1.進入MySQL步驟:先打開CMD命令行;命令:C:\Users\admin> mysql -h(功能變數名稱,可填或不填) -u(賬號) -p(密碼); 連接成功時會跳出以下命令: Connection id: 9 【這個表示:連接次數】Current databas ...
  • 占座 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...