mac安裝
一、官網(wǎng)下載安裝包:
https://www.mongodb.com/download-center/community?jmp=nav
二、下載后解壓壓縮包更名為mongodb
三、將解壓好的壓縮包移動到/usr/local目錄下
四、打開終端,輸入命令行export PATH=/usr/local/mongodb/bin:$PATH回車,這樣以后啟動mongodb就不用輸很長的路徑名。
打開終端,輸入sudo mkdir -p /data/db,即可新建用于保存數(shù)據(jù)庫文件。data/db文件夾被建于MAC的根目錄中。
默認(rèn)使用這個文件夾保存,如果想自行設(shè)置,可進入usr/local/mongodb/bin后啟動終端,使用./mongod --dbpath=/你的路徑 指定你的文件夾。
啟動
sudo mongod
如果想修改默認(rèn)的數(shù)據(jù)存儲目錄路徑
sudo mongod --dbpath=數(shù)據(jù)存儲目錄路徑
單擊一下終端,command+n新建一個終端,輸入cd /usr/local/mongodb/bin回車,進入mongodb bin文件夾,隨后輸入./mongo,回車,即可
exit退出連接
停止
在操作數(shù)據(jù)庫的終端輸入use admin后再輸入db.shutdownServer()
或在開啟服務(wù)的控制它control + c關(guān)閉
基本命令
show dbs // 查看顯示所有數(shù)據(jù)庫
db // 查看當(dāng)前操作的數(shù)據(jù)庫
use 數(shù)據(jù)庫名 // 切換到指定的數(shù)據(jù)(如果沒有會新建)
node中使用mongodb
一、使用官方的mongodb包來操作
https://github.com/mongodb/node-mongodb-native
二、使用第三方mongoose來操作mongodb數(shù)據(jù)庫
https://mongoosejs.com/
例:
const mongoose = require('mongoose');
// 連接mongodb數(shù)據(jù)庫
mongoose.connect('mongodb://localhost:27017/test', {
useNewUrlParser: true
});
// 創(chuàng)建模型
const Cat = mongoose.model('Cat', {
name: String
});
實例化一個cat
const kitty = new Cat({ name: 'Zildjian' });
// 持久化保存kitty實例
kitty.save().then(() => console.log('meow'));
mongoose詳細操縱數(shù)據(jù)庫
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
mongoose.connect('mongodb://localhost/student', {
useNewUrlParser: true
});
// 設(shè)計文檔結(jié)構(gòu)
const userSchema = new Schema({
username: {
type: String,
required: true // 必須有
},
password: {
type: String,
required: true
},
email: {
type: String
}
})
// 將文檔發(fā)布為模型
// 第一個參數(shù)傳入一個大寫名詞單數(shù)字符串用來表示集合名
// mongoose會自動將大寫名詞的字符串生成小寫復(fù)數(shù)的集合名稱
// 例如這的User會最終變?yōu)閡sers集合名稱
// 第二個參數(shù):架構(gòu) Schema
// 返回值:模型構(gòu)造函數(shù)
const User = mongoose.model('User', userSchema)
增加數(shù)據(jù)
const admin = new User({
username: 'admin',
password: '123456',
email: 'admin@admin.com',
})
admin.save().then(() => console.log('保存成功'));
查詢所有
User.find((err, ret) => {
if (err) {
console.log('查詢失敗')
} else {
console.log(ret)
}
})
查詢匹配項(返回數(shù)組)
User.find({
username: 'zs'
}, (err, ret) => {
if (err) {
console.log('查詢失敗')
} else {
console.log(ret)
}
})
查詢一條(按條件查詢返回json)
User.findOne({
username: 'zs'
}, (err, ret) => {
if (err) {
console.log('查詢失敗')
} else {
console.log(ret)
}
})
查詢第一條(返回json)
User.findOne((err, ret) => {
if (err) {
console.log('查詢失敗')
} else {
console.log(ret)
}
})
刪除符合條件的所有(返回json)
User.deleteMany({
username: 'admin'
}, (err, ret) => {
if (err) {
console.log('刪除失敗')
} else {
console.log('刪除成功', ret)
}
})
刪除符合條件的一條(返回json)
User.deleteOne({
username: 'admin'
}, (err, ret) => {
if (err) {
console.log('刪除失敗')
} else {
console.log('刪除成功', ret)
}
})
更新
User.findByIdAndUpdate('5c7f9470f1c88ddc1e36c0ea', {
username: '好人'
}, (err, ret) => {
if (err) {
console.log('更新失敗')
} else {
console.log('更新成功', ret)
}
})