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
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...