安裝mongodb遇到的一些問題 以及一些指令 及 插件運用方式
阿新 • • 發佈:2019-02-23
name 數據庫的操作 版本 跳過 log win host 監聽 shell 安裝 註意事項
在`Mongodb`官網下載最新版本的[Mongodb下載地址](https://cloud.mongodb.com/)
下載`msi`的`window`安裝包,可以裝到C盤或者D盤目錄下
> 由於我是安裝在D盤的環境下
>
> ```shell
> D:\Program Files (x86)\MongoDB\Server\3.2\bin
> ```
>
> 所以在bin文件夾下找到mongod.exe命令,然後通過管理員執行`mongod --dbpath x路徑x`,路徑可以是任何地方,我這裏選擇在D盤的MongoDB目錄下,當然路徑不要包含特殊的字符串,比如`Program Files (x86)`也不行
>
> ```shell
> mongod --dbpath D:\mongodb\data\db
> ```
>
> ![image](https://user-images.githubusercontent.com/17243165/31977540-fc0a5a6e-b96f-11e7-9a2b-34d66d7241c4.png)
默認安裝c盤 安裝時不要勾選 install compass 否則可能會持續在安裝中
安裝完成運行指令 mongod 則復制c盤 Program Files/mongodb/bin文件 復制目錄 將其配置到系統環境變量中即可
數據庫
-------啟動數據庫 開啟指令:mongod (如果自啟動 就無需執行該指令)
-------連接數據庫:mongo
-------無問題就查看數據庫:show dbs
-------創建數據庫:use dbname
use有兩個功能
1、新建數據庫 沒有該數據庫 use表示新建
2、切換數據庫 有該數據庫 use表示切換到該數據庫 新建的數據庫為空是一個臨時的庫
------刪除數據庫: db.dropDatabase()
刪除前一定要切換到需要刪除的庫 use 1823 --db.dropDatabase()
------查數據庫:show dbs 查詢所有的數據庫
db 查詢當前使用的db
集合 (即數據庫裏的表)不要以數字命名集合
-------增加集合:db.createCollection(‘users‘) users即集合的名字
------刪除集合:db.name.drop() 需要切換到當前集合 然後執行該指令
------查找集合 show collectoins()
文檔(即表格中的數據內容)
-------增加數據:db.collecionName.insert({obj})
-------刪除數據:db.collecionName.remove({條件}) 是一個空對象時 表示全部刪除
-------修改數據:db.collectionName.updata(查詢條件,修改($set),修改全部)
-------查找數據:db.collectionName.find(查詢條件)
db.collectionName.find().pretty() 將查詢後的結果進行格式化
db.collecitonName.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)
固值查找
db.user.find({name:‘李四‘,age:30})
範值查找
db.user.find({age:{$ite:30}}) 查找年齡小於等於30 大於等於詳看官方文檔
且或 $and $or
db.user.find({$and:[{name:李四},{age:39}]})
db.user.find().skip(2)跳過2條數據
db.user.find().limit(3) 截取3條數據
db.user.find().skip().limit()跳過數據再截取數據
db.user.find().sort({age:18}:1) 排序 1升序 -1降序
通過node的mongoose 插件操作數據庫 (mongodb也是操作數據庫的插件)
mongoose 插件有封裝好的promise 可以直接使用then方法等
1. 下載mongoose npm
2. 連接數據庫
3. 創建schema對象
4. 將schema轉化為數據模型
5. 通過數據模型執行查詢操作
var mongoose = require(‘mongoose‘);
// 此插件內部已有封裝好的promis對象 可以使用.then方法
mongoose.connect(‘mongodb://localhost:27017/1823‘);//默認占用端口27017 於數據庫1823進行連接
var db = mongoose.connection;// 獲取連接對象進行監聽
db.on(‘error‘,(err)=>{
console.log(‘連接錯誤‘)
});
db.on(‘open‘, function() {
console.log(‘連接ok‘)
});
// 創建schema 對象 理解成一個表頭
var UserSchema = new mongoose.Schema({
name: String,
age :Number,
pass: String,
});
// 4. 將schema轉化為數據模型
let user = mongoose.model(‘logs‘, UserSchema); //參數1 是集合的名字 與數據模型關聯的schema對象
// 註意註意:參數1數據庫裏數據表的名字一定是復數形式 如果不是復數會默認變成復數格式 這樣就插不到原來的log表裏了 而是在logs裏
// 5.進行數據庫的操作
//插入數據
user.insertMany([{name:"張三",age:18,pass:123},{name:"李四",age:18,pass:345},{name:"王五",age:18,pass:434}])
.then((data)=>{
console.log(data);
})
.catch((err)=>{
console.log(err)
})
// 查找
// user.find({name:‘李四‘,pass:345})
// .then((data)=>{
// console.log(data)
// })
// .catch((err)=>{
// console.log(err)
// })
//刪除
// user.deleteMany({name:‘張三‘})
// .then((data)=>{
// console.log(data.deletedCount)
// })
// 修改
user.updateMany({name:‘李四‘},{name:‘六六‘})
.then((data)=>{
console.log(data)
})
.catch((err)=>{
console.log(err)
})
安裝mongodb遇到的一些問題 以及一些指令 及 插件運用方式