MongoDB安裝測試和簡單使用,Mongoose的安裝和使用


MongoDB安裝測試和簡單使用

1.先安裝MongoDB

2.以管理員身份運行**cmd.exe,**進入dos命令界面,執行下列命令

> mongod --storageEngine mmapv1 --dbpath "d:\mongodb\db" --logpath "d:\mongodb\log\MongoDB.log"

3.測試連接

原來的**cmd窗口不關閉,以管理員身份再開一個cmd窗口**,輸入mongo或者mongo.exe,出現如下信息說明測試通過,此時我們已經進入了test這個數據庫。

4.**將MongoDB安裝為windows服務(重點中的重點)**

當mongod.exe被關閉時,mongo.exe 就無法連接到數據庫了,因此每次想使用mongodb數據庫都要開啟mongod.exe程序,所以比較麻煩,此時我們可以將MongoDB安裝為windows服務

以管理員身份運行**cmd**,進入bin文件夾,執行下列命令

mongod --storageEngine mmapv1 --dbpath "d:\mongodb\db" --logpath "d:\mongodb\log\MongoDB.log" --install --serviceName "MongoDB"

 

5.>輸入NET START MongoDB

6.>輸入mongo

7.關閉服務和刪除進程

先 ctrl+c

關閉服務:net stop MongoDB

MongoDB 常用的命令(重點)

顯示數據庫列表 > show dbs

創建數據庫 > use dbname

1. 增加數據(重點中的重點)

db.web.save({"name":"老李"}) 創建了名為web的集合,並新增了一條{"name":"老李"} 的數據

db.web.insert({"name":"ghost", "age":10}) 在web集合中插入一條新數據,如果沒有web這個集合,mongodb會自動創建

save()和insert()也存在着些許區別:若新增的數據主鍵已經存在,insert()會不做操作並提示錯誤,而save() 則更改原來的內容為新內容。

2. 刪除數據(重點中的重點)

1、刪除文檔

2、刪除集合

3、刪除數據庫

· db.users.remove({}) 刪除users集合下所有數據

· db.users.remove({"name": "lecaf"}) 刪除users集合下name=”lecaf”的數據

· db.users.drop()或db.runCommand({"drop":"users"}) 刪除集合users

· db.runCommand({"dropDatabase": 1}) 刪除當前數據庫,注意 此處的1沒加雙引號。

3. 查找數據(重點中的重點)

· db.users.find() 查找users集合中所有數據

· db.users.findOne() 查找users集合中的第一條數據

· db.users.find().pretty() 格式化查詢到的數據

4. 修改數據(重點中的重點)

· db.web.update({"name":"a1"}, {$set: {sex:”women”}},true,true) 修改name=a1的數據為sex=1,第一個參數是查找條件,第二個參數是修改內容主鍵不能修改,第三個參數表示匹配所有符合條件的數據,第四個參數表示修改所有匹配到的數據如圖

Mongoose的安裝和使用

1.1.1. 安裝**mongoose**

npm install mongoose

1.1.2. 連接數據庫

使用mongoose連接數據庫的前提條件是:

1、mongo數據庫已經運行。

2、已經安裝了mongoose包

 

var mongoose = require("mongoose");

// 連接字符串格式為mongodb://主機/數據庫名

mongoose.connect('mongodb://localhost/student);

 

上面這句的意思是連接到本地的mongodb的student表。

擴展:

// 連接本地mongodb ,本機的ip 127.0.0.1,端口:27017 數據庫:student

mongoose.connect("mongodb://127.0.0.1:27017/student",function(err){

if(!err){//如果連接成功,則打印出connected to Mongodb

console.log("connected to Mongodb");

}else{

throw err;//如果連接失敗,則拋出異常

}

});

 

1.1.3. 新增數據

先講解一個概念 Schema:

 

它可以理解為數據庫模型骨架,可以看作工廠中模具一樣,好比一個茶杯,喝水是茶杯最終的功能,茶杯本身就像是Model,那么茶杯的批量生產是需要靠工廠的模具成型的。Schema不僅定義了文檔結構和使用性能,還可以有擴展插件、實例方法、靜態方法、復合索引、文檔生命周期鈎子。

 

Schema : 一種以文件形式存儲的數據庫模型骨架,不具備數據庫的操作能力 錢的電板

Model : 由Schema發布生成的模型,具有抽象屬性和行為的數據庫操作對 錢的樣板

Entity : 由Model創建的實體,他的操作也會影響數據庫 錢

 

 

 

存儲數據步驟:定義Schema (骨架) > 創建model(模型)> Entity實例化方法。

var Schema = mongoose.Schema;

//通過Schema創建一個模式NewsSchema

var studentSchema = new Schema({

name: String,

age: String

});

student*Schema 類型有哪些*

 

 

 

//通過模式studentSchema 創建一個模型studentModel

var studentModel = mongoose.model("students",studentSchema );

 

var instance1 = new studentModel ();

instance1.name="tangyan";

instance1.age="18";

//通過save方法保存

instance1.save(function(err){

if (err) {

console.log('保存失敗');

return;

}

});

 

1.1.4. 刪除數據

思路:

 

1、刪除數據首先要知道刪除哪一條信息,需要知道信息的id.

2、把對應id的數據查詢出來,執行remove方法

假如我們要刪除id=”57e24521a755e1154039a403”的數據。

 

var id=”57e24521a755e1154039a403”;

studentQueryModel.findById(id,function(err,doc){

if(!doc){

return next(new NotFound("Doc not found"))

}else{

doc.remove(function(){

console.log('刪除成功');

})

}

});

 

1.1.5. 修改數據

修改數據的思路:先把對應id的數據查詢出來,對需要修改的字段重新賦值,然后執行save方法保存。

假如我們要修改id=”57e24521a755e1154039a403”的數據。

 

var id=”57e24521a755e1154039a403”;

 

studentQueryModel.findById(id,function(err,doc){

//console.log(doc);

doc.name="xiaotangyan" ;//把name修改為xiaotangyan

doc.save(function(err){

if(!err){

console.log('修改成功');

}else{

throw err;

}

});

});

1.1.6. 查詢數據

下面find第一個參數{}里面為空,表示查詢所有的數據:

docs表示查詢的結果集合,可用於渲染ejs模板引擎。

 

studentQueryModel.find({},function(err,docs){

console.log(docs);

});

2. 需求分析

為了保存網站的數據,通常需要一個數據庫。MongoDB和Node.js特別般配,因為MongoDB是基於文檔的非關系型數據庫,文檔是按BSON(JSON的輕量化二進制格式)存儲的,增刪改查等管理數據庫的命令和JavaScript語法很像。如果你在Node.js里訪問MongoDB的數據,會有我們是一家人的感覺,特別親切。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM