MongoDB學習

學習MongoDB

一、安裝

在window的環境下安裝MongoDB:
MongoDB下載地址
點擊下載即可
1、點擊運行安裝到指定的目錄下面,比如我選擇的是D:\Mongo
2、在D:\Mongo 的data下創建兩個文件夾,分別是db和log,並在log文件夾下面創建MongoDB.log 用來記錄日誌信息。
3、打開cmd,執行命令cd D:\Mongo\bin 以及 D:\Mongo\bin>mongod -dbpath "Mongo\data\db"
出現下圖樣式:

表示啓動成功,默認的監聽端口是27017
4、測試連接: 另外打開一個cmd窗口,進入對應的MongoDB目錄中,也就是D:\Mongo\bin中

表示已經啓動,可以在裏面輸入一些操作語言了

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={"loginUnser":userName,"loginTime":timeStamp}; //組成JSON字符串
var db = connect('user');   //鏈接數據庫
db.login.insert(jsonDdatabase);  //插入數據
print('connect success');  //沒有錯誤顯示成功

然後像執行node文件那樣,執行語句是 mongo js文件名

MongoDB用js實現增刪改查

// 批量插入
var  db = connect('user');  //鏈接數據庫
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])

修改:

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}}})
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章