一、基本操作
-
準(zhǔn)備工作
下載
安裝
配置環(huán)境變量在安裝目錄的bin目錄為環(huán)境變量的路徑
最后cmd輸入
mongod --version測試是否安裝成功 -
啟動和關(guān)閉數(shù)據(jù)庫
mongod
#默認(rèn)存儲路徑為安裝盤的根路徑/data/db 作為存儲的目錄
#所以在第一次使用的時候要新建一個/data/db
?
?
#修改默認(rèn)路徑
mongod --dbpath=數(shù)據(jù)存儲目錄路徑
停止:
crtl+c 或者直接關(guān)掉控制臺
-
鏈接數(shù)據(jù)庫
mongo可以鏈接默認(rèn)鏈接本機(jī)服務(wù)輸入
exit可以斷開鏈接 -
基本命令
#查看顯示所有數(shù)據(jù)庫
show dbs
?
#創(chuàng)建數(shù)據(jù)庫
##切換到指定數(shù)據(jù)庫(如果沒有就新建)
use 數(shù)據(jù)庫名稱
?
#查看當(dāng)前操作的數(shù)據(jù)庫
db
二、node中操作MongoDB
-
使用官方的
mongodb包來操作 -
使用第三方mongoose來操作mongoDB
基于官方包再一次做了封裝,名字叫mongoose
npm i mongoose
基本使用
const mongoose = require('mongoose');
//導(dǎo)入包
?
mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true});
//鏈接數(shù)據(jù)庫
?
const Cat = mongoose.model('Cat', { name: String });
//創(chuàng)建表cat為表的名字 其中還有一個name值 值的類型為字符串string
?
const kitty = new Cat({ name: 'Zildjian' });
創(chuàng)建一個cat實例在其中存入一個name為Zildjian
?
kitty.save().then(() => console.log('meow'));
//持久化保存kitty實例 然后如果成功則輸出meow
添加數(shù)據(jù)
var admin = new User([
?
username: ' admin',
password: ' 123456' ,
?
email: 'admin@admin.com'
)}
?
admin.save(function (err, ret) {
if(err){
console.log('保存失敗')
}else{
console.log('保存成功')
console.log(ret)
}
})
查詢數(shù)據(jù)
User.find({
name:'xxx' //查詢條件 name為xxx 沒有就是查詢所有 findOne就是查詢一個
},function(err.ret){
if(err){
console.log('查詢失敗')
} else{
console.log(ret)
}
})</pre>
刪除
User.remove({
name:'xxx' //刪除條件 name為xxx 沒有就是刪除所有 removeOne就是刪除一個
},function(err.ret){
if(err){
console.log('刪除失敗')
} else{
console.log('刪除成功')
console.log(ret)
}
})
更新數(shù)據(jù)
//通過id查詢更新 第一個參數(shù)是id,第二個是要更新的內(nèi)容,第三個是回調(diào)
User.findByIdAndUpdate('xxxxxxxxxxx',{},function(err,ret){
if(err){
console.log('更新失敗')
}else{
console.log('更新成功')
}
})
?
?
//根據(jù)條件更新所有
Model.update(conditions, doc, [options], [callback])
?
//根據(jù)指定條件更新一個
Model.findOneAndUpdate([condtitons], [update], [options], [callback])