
MongoDB的安裝
官網(wǎng)地址 https://www.mongodb.com/download-center#community
安裝步湊
進(jìn)入 /usr/local目錄
cd /usr/local下載
sudo curl -O+網(wǎng)址其中網(wǎng)址可以在官網(wǎng)上 復(fù)制
sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-x86_64-3.4.2.tgz解壓 下載文件
sudo tar -zxvf mongodb-osx-x86_64-3.4.2.tgz把解壓的文件
【mongodb-osx-x86_64-3.4.2】重新命名為mongodb
sudo mv mongodb-osx-x86_64-3.4.2 mongodb
- 設(shè)置路徑
export PATH=/usr/local/mongodb/bin:$PATH


-
注意在第一次執(zhí)行mongod命令之前 需要自己手動創(chuàng)建一個(gè)/data/db文件目錄,這是因?yàn)?code>mongodb在使用執(zhí)行mongod命令時(shí),會把所在盤符根目錄下的/data/db作為數(shù)據(jù)儲存的目錄,如果你cd的目錄中沒有/data/db,在執(zhí)行會出現(xiàn)shutting down with code:100這樣的提示,就表示執(zhí)行成功
- 運(yùn)行測試
# 進(jìn)入根目錄
cd /
# 創(chuàng)建 /data/db目錄 sudo(獲取管理員權(quán)限)
sudo mkdir -p /data/db
#執(zhí)行 mongod 命令
sudo mongod
當(dāng)出現(xiàn) waiting for connections on port 27017時(shí),說明已經(jīng)執(zhí)行成功
若是沒有啟動成功??赡苁菦]有全局路徑
sudo mongod
# 如果沒有創(chuàng)建全局路徑 PATH,需要進(jìn)入以下目錄
cd /usr/local/mongodb/bin
sudo ./mongod
在打開一個(gè)新的終端 執(zhí)行下面 2行命令
$ cd /usr/local/mongodb/bin
$ ./mongo
- 設(shè)置全局變量
#打開終端
#定位到主目錄,輸入:cd ~
#創(chuàng)建一個(gè)bash_profile文件,輸入:touch .bash_profile
#編輯文件,open .bash_profile
#在文件中輸入路徑export PATH=${PATH}:<文件目錄>(文件目錄就是你想要替換的路徑)
#重啟終端
這樣全局路徑設(shè)置完畢,只要執(zhí)行mongo就可以啟動數(shù)據(jù)服務(wù)
- 常用的命令
mongo命令是 默認(rèn)鏈接本機(jī)的MongoDB服務(wù)
exit命令 是 退出鏈接服務(wù)
show dbs命令是 查看顯示 數(shù)據(jù)庫
use 數(shù)據(jù)庫名稱 切換到指定的數(shù)據(jù)庫,若是沒有這個(gè)數(shù)據(jù)庫,會新建這個(gè)數(shù)據(jù)庫
db 查看當(dāng)前操作的數(shù)據(jù)庫
show collections 查看集合
db.集合名稱.find()查看集合數(shù)據(jù)內(nèi)容
Node操作MongoDB數(shù)據(jù)
-
使用第三方mongoose
-
npm init -y添加package.json文件 -
npm install mongoose安裝mongoose
-
使用引包
/1,引包
var mongoose = require("mongoose");
//2,連接數(shù)據(jù)庫
mongoose.connect("mongodb://localhost/test",{useNewUrlParser: true });
//3,設(shè)計(jì)表結(jié)構(gòu)
var Schema = mongoose.Schema;
// 字段名稱就是表結(jié)構(gòu)中的屬性名稱
// 約束的目的是保證數(shù)據(jù)的完整性,防止一些臟數(shù)據(jù)
var userSchema = new Schema({
userName:{
type:String,
required:true //必須有
},
password:{
type:String,
required:true
},
email:{
type:String
}
});
//4,創(chuàng)建模型 將結(jié)構(gòu)發(fā)布為model
// 第一個(gè)參數(shù):傳入一個(gè) 大寫的名詞數(shù)字字符串用來表示你的數(shù)據(jù)庫名稱 mongoose會自動將大寫名詞字符串生成 小寫復(fù)數(shù) 的集合名稱(users)
//第二個(gè)參數(shù) 是 結(jié)構(gòu)
//返回值就是 模型對象
var User = mongoose.model("User",userSchema)
//5,根據(jù) 模型對象 對數(shù)據(jù)操作
- 添加數(shù)據(jù)
//5,根據(jù) 模型對象 對數(shù)據(jù)操作
var cc = new User({
userName:"CC",
password:"123456",
email:"169@qq.com"
});
// 添加數(shù)據(jù)
cc.save(function (error,data) {
if (error){
console.log("保存失敗");
}else {
console.log("保存成功");
console.log(data);
}
});
- 查詢數(shù)據(jù)
/查詢 數(shù)據(jù)
// 第一個(gè)參數(shù)是查詢條件 是一個(gè)對象 {name:"CC"} 意思是查詢條件是 名字是CC的數(shù)據(jù)
// 第一個(gè)參數(shù)不寫是查詢所有的數(shù)據(jù)
User.find(function (err,data) {
if (err){
console.log("查詢失敗");
}else {
console.log("查詢成功");
console.log(data);
}
})
- //刪除數(shù)據(jù)
User.remove({name:"CC"},function (err,data) {
if (err){
console.log("刪除失敗");
}else {
console.log("刪除成功");
console.log(data);
}
})
- 更新數(shù)據(jù)
User.findByIdAndUpdate("5b92193d80a088143a5688bd",{
userName:"李俊超"
},function (err,data) {
if (err){
console.log("查詢失敗");
}else {
console.log("更新成功");
}
});