nodejs之MongoDB 非關係型資料庫
一、MongoDB是什麼?
MongoDB 是一種文件資料庫,它所具備的可擴充套件性和靈活性可以滿足您對查詢和索引的需求
二、使用
1. 下載安裝
1.下載安裝包:https://www.mongodb.com/download-center/community
2.安裝流程:
next
勾選同意 -> next
選擇complete
去掉Install MongoDB as a Service -> next
去掉Install MongoDB Compass -> next
install …
finish
3.在cmd中執行 mongod 啟動資料庫(保留當前終端視窗,等待連線),提示缺少目錄:c:\data\db 需要自己建立
4.在cmd中執行 mongo 連線運算元據庫,執行 show dbs,顯示資料庫,安裝成功!!!
注意:提示找不到命令,需要去配置系統環境變數(配置完重啟cmd後執行3 4)
配置系統環境變數:C:\Program Files\MongoDB\Server\4.2\bin
2. 指令
mongod 啟動資料庫(保留當前終端視窗,等待連線)
mongo 連線運算元據庫
show dbs 檢視所有資料庫
db 檢視當前資料庫
use mydb 切換到指定資料庫(不存在則建立資料庫)
db.dropDatabase() 刪除當前資料庫(注意切換到指定資料庫)
show collections 檢視當前資料庫已有集合(表)
db.createCollection("users") 建立集合(表)
db.users.drop() 刪除當前資料庫中的users集合
db.users.insert({name:'xm',age:23,sex:1}) 向集合中插入文件(集合不存在會被自動建立)
db.users.remove({'title':'123'}) 刪除所有title為123的資料
db.users.remove({'title':'123'},1) 刪除1條title為123的資料
db.users.remove({}) 刪除所有資料
db.users.update({'title':'123'},{$set:{'title':'456'}}) 更新集合內容
db.users.find() 查詢當前集合所有內容
db.users.find({key1:value1}) 查詢當前集合指定內容
db.users.find({age:{$gt:25}}) 查詢age大於25的文件
db.users.find({age:{$lt:25}}) 查詢age小於25的文件
db.users.find({age:{$ne:25}}) 查詢age不等於25的文件
db.users.find({age:{$in:[20,25]}}) 查詢age為20和25的文件
db.users.find({$or:[{age:{$gt:22}},{sex:1}]}) 查詢age大於22 或 sex為1的文件
db.users.find({$and:[{age:{$gt:22}},{sex:1}]}) 查詢age大於22 且 sex為1的文件
db.users.find({name:/m$/}) 正規表示式查詢name結尾是m的文件
3. mongoose模組
mongoose模組,node運算元據的外掛
文件:http://mongoosejs.net/docs/index.html
安裝:npm install mongoose
mongoose 的一切始於 Schema
通過schema物件來運算元據庫
- 建立連線
// 引入模組
const mongoose = require('mongoose')
// 連線資料庫test
mongoose.connect('mongodb://localhost/test',{ useNewUrlParser: true, useUnifiedTopology: true })
// 連線資料庫物件
let db = mongoose.connection
// 監聽連線失敗事件
db.on('error', console.error.bind(console, 'connection error:'))
// 監聽連線成功事件
db.on('open', function() {
console.log('====== db connect ok======')
})
- 建立schema物件
const mongoose = require('mongoose')
//建立schema物件
const userSchema = mongoose.Schema({
user: {type: String, required: true},
pass: {type: String, required: true}
})
// 把schema物件轉成與集合關聯的資料模型
let User = mongoose.module('users', userSchema)
// 通過User物件對資料進行增刪改查
// 匯出
module.exports = User
- 運算元據庫
返回一個promise物件
// 增加資料
User.insertMany({user: 'jack', pass: 123})
.then((data) => {
console.log('新增成功') // 返回值是一個陣列 [{}]
})
.catch((err) => {
console.log(err)
})
// 刪除資料
User.remove({user: 'jack'})
.then((data) => {
console.log(data) // 返回值是一個物件 { n: 1, ok: 1, deletedCount: 1 }
})
// 修改資料
User.update({user: 'jack'}, {$set: {user: 'lucy'}})
.then((data) => {
console.log(data) // 返回值是 { n: 1, nModified: 1, ok: 1 } { n: 0, nModified: 0, ok: 1 }
})
// 查詢資料
User.find({pass: '123'})
.then((data) => {
console.log(data) // 返回值是陣列 [{...}, {...}]
})
相關文章
- 聊聊非關係型資料庫MongoDB索引資料庫MongoDB索引
- 關係型資料庫與非關係型資料庫介紹!資料庫
- 關係型資料庫和非關係型資料庫的區別資料庫
- redis—非關係型資料庫Redis資料庫
- 資料庫入門之3張表對比關係型與非關係型資料庫資料庫
- 非關係型資料庫(NOSQL)和關係型資料庫(SQL)區別詳解資料庫SQL
- 關係型資料庫之SQL資料庫SQL
- 關係型資料庫之索引資料庫索引
- SQL與NoSQL(關係型與非關係型)資料庫的區別SQL資料庫
- 列舉常見的關係型資料庫和非關係型都有那些?資料庫
- 關係型資料庫資料庫
- 關係型和非關係型資料庫一定要對立?達夢資料提供新思路資料庫
- 反DDD模式之關係型資料庫模式資料庫
- 關係型資料庫概要資料庫
- 關係型資料庫原理資料庫
- mysqlclient操作MySQL關係型資料庫MySqlclient資料庫
- SQLALchemy操作MySQL關係型資料庫MySql資料庫
- FastAPI(44)- 操作關係型資料庫ASTAPI資料庫
- Node MySQL打造關係型資料庫MySql資料庫
- 資料庫——關係型資料庫MySQL--簡單使用資料庫MySql
- 資料庫基礎知識詳解五:MySQL中的索引和其兩種引擎、主從複製以及關係型/非關係型資料庫資料庫MySql索引
- 平時常見關係型資料庫資料庫
- 雲關係型資料庫(Relational Database Service,RDS)資料庫Database
- 關係型資料庫分庫分表系列之一資料庫
- 【Python3網路爬蟲開發實戰】5-資料儲存-3-非關係型資料庫儲存-1 MongoDB儲存Python爬蟲資料庫MongoDB
- Java資料型別與資料庫欄位型別對應關係Java資料型別資料庫
- 星環科技孫元浩:未來非關係型資料庫將被整合成多模型資料庫|展望2023資料庫模型
- MYSQL資料庫型別與JAVA型別對應關係MySql資料庫型別Java
- mongoDB資料庫之聚合MongoDB資料庫
- 批量鎖(適用各種關係型資料庫)資料庫
- SQL Server 2016關係型資料庫概覽AZSQLServer資料庫
- nodejs之資料庫連線NodeJS資料庫
- 看看關係型資料庫是怎麼吊打Hadoop的資料庫Hadoop
- 關係型資料庫全表掃描分片詳解資料庫
- 分散式關係型資料庫RadonDB體驗歸來分散式資料庫
- 關係型資料庫設計三大正規化資料庫
- 如何將資料從Hadoop匯出到關係型和NoSQL資料庫?HadoopSQL資料庫
- 騰訊雲釋出全新非關係型資料庫KeeWiDB,搭載全自研儲存引擎資料庫儲存引擎