Mongodb安裝和簡單操作

文章目錄

  • 1.安裝服務端
    • 1.1 官網下載,解壓安裝
    • 1.2 配置啟動
  • 2.安裝客戶端
  • 2.1 MongoDB Shell下載安裝
  • 2.2 連接服務
  • 3.操作
    • 3.1 創建數據庫
  • Create a New Database and Collection
    • 3.1 Insert Documents
    • 3.2 Query Documents
    • 3.3 Update Documents
    • 3.4 Delete Documents

1.安裝服務端

1.1 官網下載,解壓安裝

mogodb下載地址

# 下載
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-7.0.11.tgz
# 解壓
tar -zxvf mongodb-linux-x86_64-rhel70-7.0.11.tgz 
# 修改包名
mv mongodb-linux-x86_64-rhel70-7.0.11 mongodb
# 配置環境變量
export MONGODB_HOME=/opt/software/mongo
export PATH=$MONGODB_HOME/bin:$PATH
# 使環境變量生效
source /etc/profile

1.2 配置啟動

默認情況下 MongoDB 啟動后會初始化以下兩個目錄:
數據存儲目錄:/var/lib/mongodb
日志文件目錄:/var/log/mongodb

#創建目錄
sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb
# 設置權限
sudo chown `whoami` /var/lib/mongo     
sudo chown `whoami` /var/log/mongodb 
# 啟動
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
# 查看日志
tail -10f /var/log/mongodb/mongod.log

2.安裝客戶端

MongoShell安裝參考地址

2.1 MongoDB Shell下載安裝

# 下載
wget https://downloads.mongodb.com/compass/mongosh-2.2.6-linux-x64.tgz
# 解壓
tar -zxvf mongosh-2.2.6-linux-x64.tgz
# 授權
chmod +x bin/mongosh
# 移動以下兩個文件到以下路徑下
sudo cp mongosh /usr/local/bin/
sudo cp mongosh_crypt_v1.so /usr/local/lib/
# 軟鏈接
sudo ln -s $(pwd)/bin/* /usr/local/bin/

2.2 連接服務

mongosh "mongodb://localhost:28015"
mongosh "mongodb://mongodb0.example.com:28015" --username alice --authenticationDatabase admin

3.操作

3.1 創建數據庫

Create a New Database and Collection

use myNewDatabase
db.myCollection.insertOne( { x: 1 } );

use maps
switched to db maps
maps> 
maps> db.maps.insertOne({x:1,y:1})
{acknowledged: true,insertedId: ObjectId('665bb7f84323849c6fa26a13')
}

3.1 Insert Documents

The MongoDB shell provides the following methods to insert documents into a collection:
To insert a single document, use db.collection.insertOne().

 db.music.insertOne({singer:"xxx",name:"do it",type:"popular"})
{acknowledged: true,insertedId: ObjectId('665bb96b4323849c6fa26a14')
}

To insert multiple documents, use db.collection.insertMany().

db.music.insertMany([{singer:"yyy",name:"love it",type:"popular"},{singer:"zzz",name:"forget it",type:"popular"}])
{acknowledged: true,insertedIds: {'0': ObjectId('665bb9e04323849c6fa26a16'),'1': ObjectId('665bb9e04323849c6fa26a17')}
}

3.2 Query Documents

db.music.find()

db.music.find()
[{_id: ObjectId('665bb96b4323849c6fa26a14'),singer: 'xxx',name: 'do it',type: 'popular'},{'0': { singer: 'yyy', name: 'love it', type: 'popular' },'1': { singer: 'zzz', name: 'forget it', type: 'popular' },_id: ObjectId('665bb9ca4323849c6fa26a15')},{_id: ObjectId('665bb9e04323849c6fa26a16'),singer: 'yyy',name: 'love it',type: 'popular'},{_id: ObjectId('665bb9e04323849c6fa26a17'),singer: 'zzz',name: 'forget it',type: 'popular'}
]

3.3 Update Documents

db.music.updateOne({singer:"xxx"},{$set:{type:"sad"}})
{acknowledged: true,insertedId: null,matchedCount: 1,modifiedCount: 1,upsertedCount: 0
}
maps> db.music.find({singer:"xxx"})
[{_id: ObjectId('665bb96b4323849c6fa26a14'),singer: 'xxx',name: 'do it',type: 'sad'}
]

3.4 Delete Documents

db.music.deleteOne( { singer: "xxx" } )
{ acknowledged: true, deletedCount: 1 }
maps> db.music.find()
[{'0': { singer: 'yyy', name: 'love it', type: 'popular' },'1': { singer: 'zzz', name: 'forget it', type: 'popular' },_id: ObjectId('665bb9ca4323849c6fa26a15')},{_id: ObjectId('665bb9e04323849c6fa26a16'),singer: 'yyy',name: 'love it',type: 'popular'},{_id: ObjectId('665bb9e04323849c6fa26a17'),singer: 'zzz',name: 'forget it',type: 'popular'}
]

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/20803.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20803.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20803.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python | Leetcode Python題解之第125題驗證回文串

題目&#xff1a; 題解&#xff1a; class Solution:def isPalindrome(self, s: str) -> bool:n len(s)left, right 0, n - 1while left < right:while left < right and not s[left].isalnum():left 1while left < right and not s[right].isalnum():right - …

2010-2015 年阿拉斯加北坡苔原植物功能類型連續覆蓋圖

ABoVE: Tundra Plant Functional Type Continuous-Cover, North Slope, Alaska, 2010-2015 2010-2015 年阿拉斯加北坡苔原植物功能類型連續覆蓋圖 簡介 文件修訂日期&#xff1a;2021-08-27 數據集版本: 1 摘要 該數據集以 30 米的分辨率提供了阿拉斯加北坡約 12.5 萬平方…

UTF-64設想之排列組合

現有的UTF-8和UTF-16&#xff0c;用不同語言表示相同意思時&#xff0c;字節數相差很多。所以&#xff0c;就有了UTF-64的設想。它的設計目標是&#xff1a;不同語言表示相同意思&#xff0c;需要的字節數相差不多。 運行以下程序&#xff0c;得出所有排列組合。 import itert…

【深度學習的未來:探索無監督學習的潛力】

文章目錄 前言無監督學習的基本概念簡單的無監督學習示例&#xff1a;K-Means聚類分析代碼結論 前言 隨著深度學習技術的不斷進步&#xff0c;我們正逐漸從依賴大量標注數據的有監督學習轉向更加高效和自主的無監督學習。無監督學習旨在讓機器從數據中自行發現模式和結構&…

【RuoYi】實現文件的上傳與下載

一、前言 首先&#xff0c;最近在做一個管理系統&#xff0c;里面剛好需要用到echarts圖和富文本編輯器&#xff0c;然后我自己去看了官網覺得有點不好懂&#xff0c;于是去B站看來很多視頻&#xff0c;然后看到了up主【程序員青戈】的視頻&#xff0c;看了他講的echarts圖和富…

k8s 部署 Dashboard

Dashboard 是官方提供的一個UI&#xff0c;可用于基本管理K8s資源。 # 在master節點執行# wget \ https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml vi recommended.yaml 增加 nodePort: 30001 和 type: NodePort ...... spec:p…

一步一步寫線程之十四并行編程和并行庫

一、并行編程 多線程和多進程編程&#xff0c;在早期一般是并發編程&#xff0c;現在基本是并行編程的基礎。或者干脆就叫并行編程也沒有什么可糾結的。但實際上并發編程和并行編程還是有著很大的不同。在前面的“多核和多CPU編程”系列中&#xff0c;已經對并發和并行的概念以…

利用Python處理DAX多條件替換

小A&#xff1a;白茶&#xff0c;救命啊~~~ 白茶&#xff1a;什么情況&#xff1f; 小A&#xff1a;是這樣的&#xff0c;最近不是臨近項目上線嘛&#xff0c;有一大波度量值需要進行類似的調整&#xff0c;一個兩個倒沒啥&#xff0c;600多個&#xff0c;兄弟&#xff0c;救命…

從JS角度直觀理解遞歸的本質

讓我們寫一個函數 pow(x, n)&#xff0c;它可以計算 x 的 n 次方。換句話說就是&#xff0c;x 乘以自身 n 次。 有兩種實現方式。 迭代思路&#xff1a;使用 for 循環&#xff1a; function pow(x, n) {let result 1;// 在循環中&#xff0c;用 x 乘以 result n 次for (let i…

Springboot中使用spel+自定義注解實現權限控制

使用spel+自定義注解實現權限控制的案例很多, 比如springsecurity,本文也是一同樣的方式實現權限校驗 定義注解 package com.example.demo.anno;import java.lang.annotation.ElementType; import java.lang.annotation.

opencv進階 ——(九)圖像處理之人臉修復祛馬賽克算法CodeFormer

算法簡介 CodeFormer是一種基于AI技術深度學習的人臉復原模型&#xff0c;由南洋理工大學和商湯科技聯合研究中心聯合開發&#xff0c;它能夠接收模糊或馬賽克圖像作為輸入&#xff0c;并生成更清晰的原始圖像。算法源碼地址&#xff1a;https://github.com/sczhou/CodeFormer…

如何快速找到 RCE

背景介紹 本文將分享國外白帽子在‘偵察’階段如何快速發現 RCE 漏洞的經歷。以Apache ActiveMQ 的 CVE-2023–46604 為特例&#xff0c;重點介紹如何發現類似此類的漏洞&#xff0c;讓我們開始吧。 快速發現過程 在‘偵察’階段&#xff0c;白帽小哥會保持每周更新一次目標…

1940java swing零售庫存管理系統myeclipse開發Mysql數據庫CS結構java編程

一、源碼特點 java swing 零售庫存管理系統 是一套完善的窗體設計系統&#xff0c;對理解SWING java 編程開發語言有幫助&#xff0c;系統具有完整的源代碼和數據庫&#xff0c;&#xff0c;系統主要采用C/S模式開發。 應用技術&#xff1a;javamysql 開發工具&#xff1a;…

適合技術小白學習的項目1863java在線視頻網站系統 Myeclipse開發mysql數據庫web結構java編程計算機網頁項目

一、源碼特點 java在線視頻網站系統 是一套完善的web設計系統&#xff0c;對理解JSP java編程開發語言有幫助采用了java設計&#xff0c;系統具有完整的源代碼和數據庫&#xff0c;系統采用web模式&#xff0c;系統主要采用B/S模式開發。 開發環境為TOMCAT7.0,Myeclipse8.5開發…

數據庫、數據表的基本操作

1.數據庫的基本操作 &#xff08;1&#xff09;創建數據庫 &#xff08;2&#xff09;刪除數據庫 &#xff08;3&#xff09;將數據庫的字符集修改為gbk gbk是漢字內碼擴展規范&#xff0c;是GB2312和GB13000的擴展&#xff0c;主要用于簡體中文。 &#xff08;4&#xff09;…

LabVIEW在高校電力電子實驗中的應用

概述&#xff1a;本文介紹了如何利用LabVIEW優化高校電力電子實驗&#xff0c;通過圖形化編程實現參數調節、實時數據監控與存儲&#xff0c;并與Simulink聯動&#xff0c;提高實驗效率和數據處理能力。 需求背景高校實驗室在進行電機拖動和電力電子實驗時&#xff0c;通常使用…

前端框架安全防范

前端框架安全防范 在現代Web開發中&#xff0c;前端框架如Angular和React已經成為構建復雜單頁面應用&#xff08;SPA&#xff09;的主流工具。然而&#xff0c;隨著應用復雜度的增加&#xff0c;安全問題也變得越來越重要。本文將介紹如何在使用Angular和React框架時&#xf…

Java中的synchronized關鍵字詳解

Java中的synchronized關鍵字詳解 1. 引言 在Java編程中&#xff0c;多線程是提高應用性能的重要手段之一。然而&#xff0c;多線程環境下共享資源的訪問控制成為必須面對的問題。synchronized關鍵字作為Java語言提供的一種同步機制&#xff0c;能夠有效地解決這一問題。本文將…

施耐德 BAS PLC 基本操作指南

CPU 型號 項目使用的 PLC 型號為&#xff1a;施耐德昆騰 Quantum 140 CPU 67160 P266 CPU &#xff0c;支持熱備冗余&#xff0c;內部存儲 1024K&#xff0c;支持 2 個 PCMCIA 擴展卡槽CPU 模塊自帶接口&#xff1a;MB 串口接口、MB 串口接口、USB 接口、以太網接口&#xff…

MATLAB算法實戰應用案例精講-【數模應用】聯合分析(附python和MATLAB代碼實現)

目錄 前言 算法原理 什么是聯合分析? 聯合分析的基本原理與步驟