MongoDB基於window的安裝,及基本的使用方法

學習MongoDB

一、安裝

在window的環境下安裝MongoDB:
MongoDB下載地址

點擊下載即可

  • 安裝軟件
  • 啓動mongo服務,每次啓動MongoDB的服務的時候都需要以管理員的身份在命令行中輸入以下代碼:
你安裝的MongoDB的bin文件下 > mongod --dbpath "d://mongodb//data" --logpath "d://mongodb//log//mongodb.log" --logappend

mongod --dbpath 命令是創建數據庫文件的存放位置,啓動mongodb服務時需要先確定數據庫文件存放的位置,否則系統不會自動創建,啓動會不成功。 --logpath 表示日誌文件存放的路徑 --logappend 表示以追加的方式寫日誌文件

  • 點擊軟件所在的地方的 bin 文件夾下的 mongo.exe 運行軟件
    在這裏插入圖片描述
    出現彈窗就可以開始輸入一些命令了,例如:
    在這裏插入圖片描述
  • 在安裝MongoDB的時候會要求你下載MongoDB Compass 這是一個MongoDB數據庫的可視化工具
    在這裏插入圖片描述

默認的端口號是27017,點擊 connect 鏈接數據庫,就可以看到你本地的數據庫的相關數據了,可以用這個工具去添加數據庫的表,也可以用shell命令行來添加

MongoDB基本的命令

  • show dbs : 顯示已有數據庫,如果你剛安裝好,會默認有local、admin(config),這是MongoDB的默認數據庫,我們在新建庫時是不允許起這些名稱的。
  • use 數據庫的名字 : 進入數據,也可以理解成爲使用數據庫。成功會顯示:switched to db 數據庫的名字,也有創建數據庫的功能。
  • show collections : 顯示數據庫中的集合(關係型中叫表,我們要逐漸熟悉)。
  • db : 顯示當前位置,也就是你當前使用的數據庫名稱,這個命令算是最常用的,因爲你在作任何操作的時候都要先查看一下自己所在的庫,以免造成操作錯誤。
  • use db(建立數據庫):use不僅可以進入一個數據庫,如果你敲入的庫不存在,它還可以幫你建立一個庫。但是在沒有集合前,它還是默認爲空。
  • db.集合.insert( ):新建數據集合和插入文件(數據),當集合沒有時,這時候就可以新建一個集合,並向裏邊插入數據。Demo:db.user.insert({“name”:”jspang”})
  • db.集合.find( ):查詢所有數據,這條命令會列出集合下的所有數據,可以看到MongoDB是自動給我們加入了索引值的。Demo:db.user.find()
  • db.集合.findOne( ):查詢第一個文件數據,這裏需要注意的,所有MongoDB的組合單詞都使用首字母小寫的駝峯式寫法。
  • db.集合.update({查詢},{修改}):修改文件數據,第一個是查詢條件,第二個是要修改成的值。這裏注意的是可以多加文件數據項的,比如下面的例子。

用JS寫MongoDB執行語句

goTask.js文件

var userName="Emma";    //聲明一個登錄名   

var timeStamp=Date.parse(new Date());     //聲明登錄時的時間戳  

var jsonDdatabase={"loginUser":userName,"loginTime":timeStamp}; //組成JSON字符串

var url = "mongodb://localhost:27017/admin";

var db = connect(url);   //鏈接數據庫
db.login.insert(jsonDdatabase);  //插入數據
print('connect success');  //沒有錯誤顯示成功

然後像執行node文件那樣,在這個文件所在的地方打開命令行,執行語句是 mongo js文件名
在這裏插入圖片描述
就會看到上面的結果。這就實現了簡單的操作數據庫

MongoDB用js實現增刪改查

// 批量插入
var  db = connect('mongodb://localhost:27017/admin');  //鏈接數據庫
var user1 = {
	"_id" : 1,
	"name" :"Emma",
	"sex" : 0,
	"age" : 24,
	"skill" : [ "web前端","javascript"]
}
var user2 = {
	"_id" : 2,
	"name" :"Jack",
	"sex" : 0,
	"age" : 26,
	"skill" : [ "Java","PHP"]
}
var user3 = {
	"_id" : 3,
	"name" :"Meg",
	"sex" : 1,
	"age" : 20,
	"skill" : [ "UI","Photoshop"]
}
// 表格的名字叫test
db.test.insert([user1,user2,user3])

在這裏插入圖片描述
執行之後打開MongoDB compass就可以看到admin 下多了一個表格叫 test,裏面有你剛纔添加的內容
在這裏插入圖片描述

修改:

var  db = connect('user');  //鏈接數據庫
db .test.update({"name":"Emma"},{"$set":{sex:1,age:21}})

// $unset用於將key刪除
db.test.update({"name":"Emma"},{$unset:{"age" : ' ' }})

// $inc對數字進行計算 它是對value值的修改,但是修改的必須是數字,字符串是不起效果的。
// 我們現在要對MiJie的年齡減去2歲,就可以直接用$inc來操作。
db.test.update({"name":"Emma"},{$inc:{"age":-3}})

// multi選項 multi是有ture和false兩個值,true代表全部修改,false代表只修改一個(默認值)
db.test.update({},{$set:{interset:[]}},{multi:true})

// upsert選項 upsert是在找不到值的情況下,直接插入這條數據。比如我們這時候又來了一個成員xiaoba,
// 我們這時候修改他的信息,age設置成20歲,但集合中並沒有這條數據。這時候可以使用upsert選項直接添加。
db.test.update({name:'xiaoba'},{$set:{age:20}},{upsert:true})

// $push追加數組/內嵌文檔值
db.test.update({name:'xiaoba'},{$push:{interest:'draw'}})

// $ne查找是否存在  它主要的作用是,檢查一個值是否存在,如果不存在再執行操作,存在就不執行,這個很容易弄反。
db.test.update({name:'xiaoba',"interest":{$ne:'playGame'}},{$push:{interest:'Game'}})

// $addToSet 升級版的$ne
// 它是$ne的升級版本(查找是否存在,不存在就push上去),操作起來更直觀和方便,所以再工作中這個要比$en用的多。
db.test.update({name:"xiaoba"},{$addToSet:{interest:"readBook"}})

// $each 批量追加  它可以傳入一個數組,一次增加多個值進去,相當於批量操作,性能同樣比循環操作要好很多,
// 這個是需要我們注意的,工作中也要先組合成數組,然後用批量的形式進行操作。
var newInterset=["Sing","Dance","Code"];
db.test.update({name:"xiaoba"},{$addToSet:{interest:{$each:newInterset}}})
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章