1. 程式人生 > 遊戲攻略 >《艾爾登法環》近戰流加點配裝參考

《艾爾登法環》近戰流加點配裝參考

1. 介紹

1.1 什麼是MongoDB

MongoDB 是由C++語言編寫的,是一個基於分散式檔案儲存的開源資料庫系統。
在高負載的情況下,新增更多的節點,可以保證伺服器效能。

MongoDB 旨在為WEB應用提供可擴充套件的高效能資料儲存解決方案。

MongoDB 將資料儲存為一個文件,資料結構由鍵值(key=>value)對組成。MongoDB 文件類似於 JSON 物件。欄位值可以包含其他文件,陣列及文件陣列。是NoSQL。

1.2 什麼是NoSQL

詳細請看:https://www.runoob.com/mongodb/nosql.html

NoSQL,指的是非關係型的資料庫。NoSQL有時也稱作Not Only SQL

的縮寫,是對不同於傳統的關係型資料庫的資料庫管理系統的統稱。

NoSQL用於超大規模資料的儲存。(例如谷歌或Facebook每天為他們的使用者收集萬億位元的資料)。這些型別的資料儲存不需要固定的模式,無需多餘操作就可以橫向擴充套件。

1.3 什麼是Mongoose

一般我們不直接用MongoDB的函式來操作MongoDB資料庫
Mongose就是一套操作MongoDB資料庫的介面

2. 準備

MongoDB安裝包括兩部分,一個是將MongoDB的服務下載下來並且安裝到自己電腦;一個是視覺化介面

2.1 安裝MongoDB

開啟官網 https://www.mongodb.com/try/download/community



下載安裝包後,即可開啟安裝,可以自己設定放置路徑
注意:下圖一定要取消安裝,compass客戶端視覺化介面我會另外下載。你要是選中了,那就是安裝了一天也完成不了

安裝完後,在安裝目錄的 **data **下需要自己手動建立一個 **db **資料夾

2.2 測試是否安裝成功

進入C:\Program Files\MongoDB\Server\5.0\bin(預設的安裝路徑),雙擊mongo.exe,

用記事本開啟mongod.cfg,可以看到,訪問埠號是:27017。可以修改,不過修改後需要重啟mongo.exe。

在瀏覽器訪問:http://127.0.0.1:27017 ,出現下面網頁,代表成功啟動。

當然這樣啟動會很麻煩,而且還不好關閉。怎麼做呢?
原來的版本需要自己配置,通過dos命令框來實現啟動和關閉MongoDB。現在不需要配置,直接以管理員模式執行dos命令框,通過命令啟動和關閉。

2.3 安裝視覺化工具

官網下載 RoBo 3T(Robomongo is now Robo 3T)
下載地址:https://robomongo.org/download

下載後安裝即可

開啟,建立新連線

連線成功後,在左邊的視窗上右鍵選項來建立資料庫,和open shell來進行指令操作。

3. MongoDB 基礎操作

詳細請看:https://www.runoob.com/mongodb/mongodb-databases-documents-collections.html

3.1 插入文件

insert({資料})insertMany([{},{}])
都可以對集合增加文件,相當於給表增添記錄

3.2 更新文件

update(query, data)
後面還可以跟兩個Boolean值

  • upsert:如果不存在要更新的記錄是否要插入,預設為 false
    true為插入,false為不插入
  • multi:如果有多條要更新的記錄是否全部更新,預設為 false
    true為全部,false為第一個


其中,$set為修改器,不用則就會整個文件都替換掉,就是說原來Tom哪一項就沒有name只有age了,加上,就只更新age

3.3 刪除文件

remove(query)
後面還可以加一個Boolean引數:justOne,為 true則只刪一條,預設為 false,就是全部刪除

3.4 查詢文件

find(query)
第二個引數是配置顯示欄位,_id是預設有的

3.4.1 AND 條件

db.col.find({key1:value1, key2:value2})

3.4.2 OR 條件

db.col.find({ $or: [ {key1: value1}, {key2:value2} ] })

3.4.3 條件操作符

$in, $nin, $and... 請看https://mp.weixin.qq.com/s?__biz=MzI1NDY0MTkzNQ==&mid=2247484284&idx=1&sn=b528df57af8b9c09ae86ac752913b7b9&scene=21#wechat_redirect

操作 格式 範例 RDBMS中的類似語句
等於 {:} db.col.find({"by":"Tom"}) where by = 'Tom'
小於 {:{$lt:}} db.col.find({"likes":{$lt:50}}) where likes < 50
小於或等於 {:{$lte:}} db.col.find({"likes":{$lte:50}}) where likes <= 50
大於 {:{$gt:}} db.col.find({"likes":{$gt:50}}) where likes > 50
大於或等於 {:{$gte:}} db.col.find({"likes":{$gte:50}}) where likes >= 50
不等於 {:{$ne:}} db.col.find({"likes":{$ne:50}}) where likes != 50

3.4.4 $type 操作符

詳細請看:https://www.runoob.com/mongodb/mongodb-operators-type.html

db.test.find({ name: { $type: 'string' } })

3.4.5 limit()、skip()、sort()

limit()方法接受一個數字引數,該引數指定從MongoDB中讀取的記錄條數。
db.COLLECTION_NAME.find().limit(NUMBER)

我們除了可以使用limit()方法來讀取指定數量的資料外,還可以使用skip()方法來跳過指定數量的資料,skip方法同樣接受一個數字引數作為跳過的記錄條數
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

sort用來實現排序功能
1表示升序,-1表示降序

4. Mongoose 基礎操作

詳情請看:參考手冊

npm install mongoose

import mongoose from 'mongoose'

// 連線資料庫
mongoose.connect('mongodb://localhost:27017/users',  { useUnifiedTopology: true, useNewUrlParser: true })

// Schema定義了集合中文件的結構
const usersSchema = new mongoose.Schema({
  username: String,
  password: String
})

// Model是從Schema編譯來的建構函式。Model負責從MongoDB中建立和讀取文件
// 呼叫mongoose.model()時,Mongoose就會編譯一個Model
// 
const Users = mongoose.model('users', usersSchema)

// 查詢
Users.find({}, {username: 1, _id: 0}, (err, user) => {
  if (err) {
    console.log(err)
    return
  }
  console.log(user)
})