mongoDB的使用(NodeJs)


MongoDB相信大家都不太陌生了,但是究竟它和我們熟悉的MySQL(MariaSQL)、SQLServer有什么區別呢?

我們熟悉的MySQL是關系型數據,每個數據表都有嚴格的數據結構規定,因而我們在查詢數據的時候可以使用很強大很復雜的查詢條件。

而MongoDB是文檔型的數據庫,每個數據數據表可以儲存一條條結構不一樣的數據,而早期的NoSQL相對查詢功能比較弱小,無法JOIN,但是這個缺點已經在最新版的Mongo中添加了$lookup來解決。


 

步驟:

1.到官網下載安裝MongoDB

2.注冊mongoDB服務(window)

 值得注意地是,這里啟動mongo服務需要管理員身份運行cmd,不然不會生效

 如果想刪除服務,管理員身份運行cmd,使用 sc delete "mie's Mongo"

mongod.exe --port 8090 --logpath D:\db\log.txt  --logappend --noauth --install --serviceName "mie's Mongo" --serviceDisplayName "mie's Mongo" --serviceDescription "MongoDB service" --dbpath D:\db --directoryperdb

上面命令配置的參數大致是如下意思:

端口8090,日志路徑D:\db\log.txt,日志擴展信息也記錄,不用身份認證,注冊(安裝)服務到window上,

服務名字和服務外層表示名字叫"mie's Mongo",服務描述叫"MongoDB service",數據庫路徑是D:\db,每個數據庫一個文件夾

3.打開services.msc,啟動剛剛注冊的“mie's Mongo”服務

4.使用mongo.exe 客戶端登陸

mongo.exe localhost:8090

5.操作數據庫

use test;

db.user_table.insert({age:12,name:'張三'})
db.user_table.insert({age:33,name:'李四'})
db.user_table.insert({pass:"123456",name:'啊咩'})
db.user_table.insert({gender:1,name:'wangwu'})

db.user_table.find()
db.user_table.find({age:12})
db.user_table.find({age:{$lt:18}})
db.user_table.find({age:{$lte:12}})
db.user_table.find({age:{$lt:18,$gt:11}})
db.user_table.find({$or:[{age:{$lt:18}},{age:{$gt:30}}]})

db.user_table.remove({age:12})

db.user_table.update({age:33},{age:12,name:"路飛"})

6.配合nodeJs使用

const koa = require('koa');
const MongoClient = require('mongodb').MongoClient

let server;

(async function(){
    server = new koa()
    server.listen(8088)
    let client = await MongoClient.connect("mongodb://localhost:8090")
    let db = await client.db('test')
    server.db = db
})()

server.use(async ctx=>{
    let table = await server.db.collection('user_table')
    await table.insert({name: '虹貓',age:999})
    await table.updateOne({age:18},{$set: { b : 1,name:'李四四'}})    
    await table.deleteOne({age:12})
    ctx.body = await (await table.find({})).toArray()
})

下載mongodb包:

npm i mongodb -D

這是官方寫的nodeJs客戶端

最主要的方法:find、updateOne、deleteOne、insert


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM