MongoDb介紹
關系型資料庫和非關系型資料庫
表就是關系
或者說表與表之間存在關系
- 所有的關系型資料庫都需要通過
sql語言來操作 - 所有的關系型資料庫在操作之前都需要設計表結構
- 而且設計表還支持約束
- 唯一的
- 主鍵
- 默認值
- 非空
- 非關系型資料非常的靈活
- 有的非關系型資料庫技術key-value對兒
- 但是MongoDB是長度的最想關系型資料庫的非關系型資料庫
- 資料庫–》資料庫
- 資料表–》集合(陣列)
- 表記錄–》(檔案物件)
- MongoDB不需要設計表結構
- 也就是說你可以任意的往里面存資料,沒有結構性這么一說
安裝MongoDB地址
https://www.mongodb.com/download-center/community
可根據自的電腦安裝相應的軟體包
-
下載
-
安裝
-
配置環境變數
-
最后輸入mongod --version 測驗是否安裝成功
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-1YmJp879-1610087378118)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201216145731489.png)]
MongoDB資料庫啟動和關閉
啟動的方式:
# mongodb 默認使用執行 mongodb 命令所處盤符根目錄下的 /data/db 作為自己的資料庫存盤目錄
# 第一中方式
mongod --dbpath 找到你存放data/db檔案夾
mongod --dbpath D:\MongoDB\data\db
停止:
在開啟服務的控制臺,直接ctrl+c即可停止
或者直接關閉開啟服務的控制臺也可以,
如何連接資料庫
連接:
# 該命令默認連接本機的mongodb服務
mongo
退出:
# 在連接狀態中輸入exit 退出連接
exit
基本命令
-
show dbs- 查看顯示所有資料庫
-
db- 查看當前操作的資料庫
-
use 資料庫名稱- 切換到指定的資料(如果沒有會新建)
-
插入資料
db.students.insertOne("name":"java")在node中如何操作mongoDB
使用官方的
mongodb包來操作使用第三方mongoose來操作Mongodb資料庫
第三方包:
mongoose基于``MongoDB`包再一次做了封裝? - 網站
mongoose
- 官網:http://mongoosejs.com/
- 官方指南:http://mongoosejs.com/docs/guide.html
- 官方API檔案:http://mongoosejs.com/docs/api.html
MongoDB資料庫的基本概念
-
可以有多個資料庫
-
一個資料庫中可以有多個集合(表)
-
一個集合中可以有多個檔案(表記錄)
-
檔案結構很靈活,沒有任何限制
-
mongodb非常靈活,不需要像MySQL一樣先創建資料庫、表、表結構
- 在這里只需要,當你需要插入資料的時候,只需要指定往那個資料庫的哪個集合操作就可以了
- 一切都由MongoDB來幫你自動完成建庫建表這件事
{qq:{ usersL[], oriducts:[] ... }, taobao:{ },baidu:{ }}
1.起步
安裝:
npm i mongoose
hello wrold:
const mongoose = require('mongoose');
// 連接MongoDb 資料庫
mongoose.connect('mongodb://localhost/test');
// 創建一個模型
// 就是在設計資料庫
// MongoDb 是動態的,非常靈活,只需要在代碼中設計你的資料就可以了
// Mongoose 這個包就可以讓你的設計撰寫程序變的非常的簡單
const Cat = mongoose.model('Cat', { name: String });
// 實體化一個Cat
const kitty = new Cat({ name: 'Zildjian' });
// 持久化保存kitty實體
kitty.save().then(() => console.log('meow'));
2.官方指南
2.1設計Schemef發布Model
const mongoose = require('mongoose')
const Schema = mongoose.Schema
// 1.連接資料庫
// 該資料庫指定連接的資料庫不需要存在,當你插入第一條資料之后就會自動被創建出來
mongoose.connect('mongodb://localhost/itcast')
// 2.設計集合結構(表結構)或者設計檔案結構
// 欄位名稱就是表結構中的屬性名稱
// 值
// 約束的目的是為了保證資料的完整性,不要有臟資料
const blogSchema = new Schema({
username:{
type:String,
required:true
},
passwored:{
type:String,
required:true
},
email:{
type:String
}
});
// 3.將檔案結構發布為模型
// Mongoose.model方法就是用來將一個架構發布為model
// 第一個引數:傳入一個大寫名詞單數字串用來表示你的資料庫名稱
// mongoose 會自動將大寫名詞的字串生成 小寫復數 的集合名稱
// 例如這里的User最侄訓變為user集合名稱
// 第二個引數:架構Schma
// 回傳值:模型建構式
const User = mongoose.model('User',blogSchema)
// 4.當我們有了模型建構式之后,就可以使用這個建構式對user集合中的資料為所欲為了(增刪改查)
2.2增加資料
// 4.當我們有了模型建構式之后,就可以使用這個建構式對user集合中的資料為所欲為了(增刪改查)
const admin = new User({
username:'admin',
password:'123456',
email:'admin@admin.com'
})
admin.save(function (err,ret) {
if (err){
console.log(err)
console.log('保存失敗!')
}else {
console.log('保存成功!')
console.log(ret)
}
})
2.3查詢所有
// 第一種方法
// function 前面可以寫引數數
User.find(function (err,ret) {
if (err){
console.log('查詢失敗')
}else
{
console.log(ret)
}
})
// 第二種方法
User.findOne(function (err,ret) {
if (err){
console.log('查詢失敗')
}else
{
console.log(ret)
}
})
2.4按條件查詢所有
User.findOne({
name:'zs'
},function (err,ret) {
if (err){
console.log('查詢失敗')
}else
{
console.log(ret)
}
})
2.5按條件查詢單個
User.findOne({
name:'zs'
},function (err,ret) {
if (err){
console.log('查詢失敗')
}else
{
console.log(ret)
}
})
2.6洗掉
// 洗掉資料
User.remove({
username:'admin'
},function (err,ret) {
if (err)
{
console.log('洗掉失敗!')
}else
{
console.log('洗掉成功!')
console.log(ret)
}
})
2.7更新資料
// 更新資料
User.findByIdAndUpdate('5fdc5ebd19b6de39ac13af3b',{
password:'123'
},function (err,ret) {
if (err)
{
console.log('更新失敗!')
}else{
console.log('更新成功!')
console.log(ret)
}
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/246614.html
標籤:其他
