淺談mongodb
阿新 • • 發佈:2018-12-10
mongodb的介紹:
一個文件型資料庫(非關係型資料庫nosql也是)
層級為:資料庫=====》集合(表)===》文件(資料)類json的資料結構
安裝:
mongodb官網下載
- 左下角小箭頭 不要點
- 可能缺少 api-ms 檔案 可以去 postman(下載軟體psostman 檔案裡邊有api-ms檔案) 找
- 可能缺少c/data/db 檔案 進行建立
執行 - mongod 執行mogodb資料庫
- mongo 連結資料庫 並且可以執行查詢語句
- cls 清屏
基本指令
db操作:
show dbs (databases) 顯示當前資料庫 use dbname 切換資料庫 建立資料庫 建立的是一個臨時資料庫,需要在臨時資料庫裡新增一個集合,資料才有效 db 指代當前使用的資料庫 db.dropDatabase() 刪除資料庫 collection 操作 db.createCollection('集合的名字')//建立一個集合 db.集合名.drop() //刪除一個集合 show collections 檢視當前所有的集合 document 操作 db.dbname.增刪改查().pretty() 格式化資料
增:
文件的資料結構和JSON基本一樣。
所有儲存在集合中的資料都是BSON格式。
BSON是一種類json的一種二進位制形式的儲存格式,簡稱Binary JSON。
db.dbname.insert(obj) //插入資料(可多可少) 主鍵不能重複
主鍵: 唯一不重複 mongodb 中的_id預設是一個特殊的資料型別 objectId
主鍵可以人為設定 如果不設定就是預設的objectId
db.dbname.save(obj) //插入資料 主鍵不存在插入 主鍵存在就是覆蓋
批量匯入:1.以陣列的形式匯入
2.外部匯入
退出mongo環境
mongoimport --db study --collection score --file 路徑 --drop
–db:資料庫
–collection:集合名字
–file:檔案的地址
–drop :該項為可選 項,新增的話表示覆蓋。否則是追加。
刪:
db.dbname.remove({"xxx":xx});刪除xxx為xx的所有文件
db.dbname.remove({"xxx":xx},{justOne:true});刪除第一個xxx為xx的文件
db.dbname.remove({})刪除集合中所有的資料
改:
db.dbname.update({條件},{$set:{修改的項}})
db.dbname.update({條件},{$set:{修改的項}},{multi:true})修改所有完整修改
查:
1.db.dbname.find()查詢所有的 2.條件查詢 $gt: 大於 $gte 大於等於 $lt: 小於 $lte 小於等於 $ne: 不等於 3.多多查詢 db.dbname.find($and:{xxx,yyy}) 同時滿足xxx yyy 4.db.dbname.find($or:[xxx,yyy]) xxx和yyy都可以 5.模糊搜尋 db.dbname.find({xxx:/x/})xxx中含有x 6. db.dbname.count() db.dbname.find().count() 檢視文件總條數 7.排序 db.dbname.find().sort({xx:1}) 從小到大 db.dbname.find().sort({xx:-1}) 從大到小 排序優先 8.db.dbname.find().skip(x)跳過指定文件條數 9. db.dbname.find().limit(x) 調取前x條 0為所有 注:skip和limit順序沒關係 都是先跳過再調取 10. limit(每頁的數量3).skip(0) 已知: 總條數:pageSum 每頁顯示的條數:pageNum 當前的頁數:pageIndex skip=(pageIndex-1)*pageNum;
Nodejs連線:
//引入第三方模組mongodb
const MongoClient=require('mongodb').MongoClient;
var DB_COMN_STR='mongodb://localhost:27017/';
MongoClient.connect(DB_COMN_STR,{ useNewUrlParser: true },function(err,client){
console.log('連線成功');
const db=client.db('study');
db.collection('list').find().toArray((err,data)=>{
console.log(err);
console.log(data);
})
})
robo3t mongodb 視覺化工具
1.配置安裝
2.測試連結 預設設定 localhost:27017
3.視覺化操作介面 執行mongodb指令進行查詢操作
mongoose的使用
引入
npm install mongoose --save
const mongoose=require('mongoose');
連結資料庫
mongoose.connect('mongodb://127.0.0.1:27017/資料庫名稱',{useNewUrlParser:true});
//跟新版本
獲取db物件(connection)
let db=mongoose.collection
監聽事件
db.on("error", function (error) {
console.log("Database connection failure:" + error);
});
db.on("open", function () {
console.log("資料庫連線成功");
})
db.on('disconnected', function () {
console.log('資料庫連線斷開');
})
建立schema物件並例項化
const Schema=mongoose.Schema;
let useSchema=new Schema({
name:{type:string,required:true},
age:{type:Number,required:false}
})
將schema物件轉化為資料模型
mongoose,model(' 表名 ',schema物件的名字)
// 如果表明不是複數他會變成複數
// 將資料表與schema物件進行關聯
// use uses 複數
var use=mongoose.model( 'use',userSchema );
mongoose 所有的查詢結果都是promise
增
use.insertMany({name:"你還22"})
.then((data)=>{
console.log(data);
})
.catch((err)=>{
console.log(err);
})