資料庫

mcxiaoracle發表於2022-06-14

資料庫分類

1.關係型 mysql sqlserver orcal
2.非關係型 (文件資料庫) mongodb nosql。。。
非關係型資料庫的儲存單元都是 類json 資料結構
mysql 不能儲存物件 陣列 表頭固定
mongodb 啥都能存 每條資料長度不一

mongo資料庫

1.安裝資料庫
下載安裝
最後一步 install compass 不要勾選
推薦自定義安裝
首先執行 mongo 如果沒有問題 show dbs

2,解決方法
1.檔案丟失 將bin 複製到安裝的bin 目錄
2.執行mongod 資料庫檔案丟失 建立資料檔案 c:/data/db
3.mongod 開啟資料庫 (如果自啟動 mongod 沒有必須要執行)
mongo 終端(cmd) 連線資料庫

資料庫操作

mongodb 資料庫名
mongod 開啟mongodb 資料庫
mongo 通過終端 命令列的方式連線資料庫
mongodb node 一個外掛 通過node 來連線資料庫
mongoose node 外掛 通過node連線資料庫

資料庫 db

增 use dbname 新建資料庫 切換資料庫 新建的資料庫為空是一個臨時的庫
刪 db.dropDatabase() 刪除資料庫
查 show dbs 查詢所有的資料庫
db 查詢當前使用的db

集合(表) collection

增 db.createCollection(‘name’)
刪 db.name.drop()
查 show collections

文件(資料) document

增 db.集合名.insert(obj)
刪 db.集合名.remove({條件}) 如果是一個空物件 表示全部刪除
改 db.集合名.update(查詢條件,修改($set),修改全部{multi:true})
查 db.集合名.find(查詢條件)
pretty() 將查詢後的結果進行格式化
db.集合名.save()//插入資料,如果id存在則修改(覆蓋)。

分頁

db.user.find().skip(0).limit(2) 1-2 1頁
db.user.find().skip(2).limit(2) 3-4 2頁
db.user.find().skip(4).limit(2) 5-6 3頁
db.user.find().skip((page-1)*pageSize).limit(pageSize)
.skip(n)表示跳過n個
.limit(n)表示(擷取)選取n個

固值尋找

尋找age集合裡面所有含有屬性值為wscats的文件結果,相當於where name = ‘wscats’
db.age.find({name:“wscats”})

範值尋找

在這裡插入圖片描述

AND和OR尋找
尋找_id為1並且name為wscats的所有結果集
db.age.find(
{
$and: [
{"_id": 1}, {“name”: “wscats”}
]
}
)

尋找name為corrine或者name為wscats的所有結果集
db.age.find(
{
$or: [
{“name”: “corrine”}, {“name“: “wscats”}
]
}
)

AND和OR等結合
相當於語句where title = "wscats" OR ( title = "corrine" AND _id < 5)
db.age.find({
$or: [{
“title”: “wscats”
}, {
$and: [{
“title”: “corrine”
}, {
“_id”: {
$lte: 5
}
}]
}]
})

1 升序排列 .sort({鍵值(屬性值):1})
-1 降序排列 .sort({鍵值(屬性值):-1})
db.集合名.find().sort({鍵值(屬性值):1})
age集合表重新根據_id主鍵進行降序排列
db.age.find().sort({

“_id”: -1
})

Node.js連線

通過node的mongoose 外掛運算元據庫

1.下載mongoose npm npm install mongoose

2.連線資料庫
3.建立schema物件
4.將schema轉化為資料模型
5.通過資料模型執行查詢操作

2.連線資料庫

var mongoose = require(‘mongoose’);
mongoose.connect(‘mongodb://localhost:27017/1823’); 1823是集合(表)的名字,必須加上
var db = mongoose.connection;// 獲取連線物件進行監聽
db.on(‘error’,(err)=>{
console.log(‘連線錯誤’)
});
db.on(‘open’, function() {
console.log(‘連線ok’)
});

3.建立schema 物件 理解成一個表頭

var UserSchema = new mongoose.Schema({
name: String,
age :Number,
pass: String,
});

4.將schema轉化為資料模型

let user = mongoose.model(‘user’, UserSchema); //引數1 是集合的名字 與資料模型關聯的schema物件
這裡的user就是新建的集合的名字。

5.進行資料庫的操作

// user.insertMany([{name:‘網易3’,pass:123,age:16},{name:‘網易2’,pass:123,age:16}])
// .then((data)=>{
// console.log(data)
// })
// .catch((err)=>{
// console.log(err)
// })

user.find()
.then((data)=>{
console.log(data)
})
.catch((err)=>{
console.log(err)
})

刪除

// user.deleteMany({name:‘網易3’,pass:123})
// .then((data)=>{
// console.log(data.deletedCount)

// })
// .catch((err)=>{
// console.log(err)
// })

// user.updateMany({age:16},{age:2000})
// .then((data)=>{
// console.log(data)

// })
// .catch((err)=>{
// console.log(err)
// })

相關文章