摘要:價格目前的非關系型數據庫基本都是免費的功能實際開發中,很多業務需求,其實并不需要完整的關系型數據庫功能,非關系型數據庫的功能就足夠使用了。目的是為應用提供擴展的高性能的數據存儲方案。我們平時大多還是使用修改器來修改下一節我們來認識修改器
我們先來了解一下非關系型數據庫和關系型數據庫,首先需要了解一下關系型數據庫,比如,我們所熟知的 Oracle、mysql等。
關系型數據庫和非關系型數據庫
實質: 非關系型數據庫的實質,其實非關系型數據庫是傳統關系型數據庫的功能的閹割版,通過減少用不到的或者很少使用的功能,來大幅度提高產品的性能。
價格:目前的非關系型數據庫基本都是免費的
功能: 實際開發中,很多業務需求,其實并不需要完整的關系型數據庫功能,非關系型數據庫的功能就足夠使用了。這種情況下,使用性能更高、成本更低的非關系型數據庫當然是更明智的選擇。
MongoDB簡介:Mongodb 是一個基于分布式文件存儲的數據庫,由C++編寫。 目的是為WEB應用提供擴展的高性能的數據存儲方案。它是介于關系型和非關系型數據庫中間的產品,他支持的數據結構比較松散,是類似于json的Bson格式,因此可以存儲比較復雜的數據類型。
mongo shell
// 啟動mongodb 之后 var x="Hello World" print(x) // 注意這里雖然執行的時js指令,但是不能使用console.log , 只能使用print() function jspang(){ return "JSPang"; } print(jspang())
MongoDB的存儲結構
以前我們的關系型數據庫的數據結構都是頂層是庫,庫下面是表,表下面是數據。但是MongoDB有所不同,庫下面是集合,集合下面是文檔,可以看下面這張圖進行了解一下。
基礎Shell命令
show dbs :顯示已有數據庫,如果你剛安裝好,會默認有local、admin(config),這是MongoDB的默認數據庫,我們在新建庫時是不允許起這些名稱的。
use admin: 進入數據庫,也可以理解成為使用數據庫
show collections: 顯示數據庫中的集合
db:顯示當前位置,也就是你當前使用的數據庫名稱,這個命令算是最常用的,因為你在作任何操作的時候都要先查看一下自己所在的庫,以免造成操作錯誤。
用js文件寫mongo命令
首先啟動 mongodb
// getTask.js var username = "zjj"; var time = Date.parse(new Date()); var jsonData = {"loginUser": username, "loginTime": time} var db = connect("login") // 連接數據庫 db.login.insert(jsonData) print("log print success")
在該目錄下執行 mongo getTask.js
批量注入
// 批量數據插入是以數組的方式進行的 db.test.insert([ {"_id":1}, {"_id":2}, {"_id":3} ]); // 注意一次插入不要超過48M,向.zip和大圖片什么的盡量用靜態存儲,MongoDB存儲靜態路徑就好,這也算是一個規則。 // 使用數組批量插入的效率比使用循環插入的效率高的多
Update常見錯誤
// demo01.js var workmate1={ name:"JSPang", age:33, sex:1, job:"前端", skill:{ skillOne:"HTML+CSS", SkillTwo:"JavaScript", SkillThree:"PHP" }, regeditTime:new Date() } var workmate2={ name:"ShengLei", age:30, sex:1, job:"JAVA后端", skill:{ skillOne:"HTML+CSS", SkillTwo:"J2EE", SkillThree:"PPT" }, regeditTime:new Date() } var workmate3={ name:"MinJie", age:20, sex:1, job:"UI設計", skill:{ skillOne:"PhotoShop", SkillTwo:"UI", SkillThree:"Word+Excel+PPT" }, regeditTime:new Date() } var db=connect("company") var workmateArray=[workmate1,workmate2,workmate3] db.workmate.insert(workmateArray) print("[SUCCESS]: The data was inserted successfully."); // 構造數據 // 運行demo01 mongo > load("./demo01.js");
var db=connect("company") db.workmate.update({name:"MinJie"},{sex:0}) print("[update]: The data was updated successfully"); // 我們會發現需要修改的那條數據已經被大變樣了,只剩下了只有 sex:0
正確的修改方法
// demo02.js var db=connect("company") var workmate3={ name:"MinJie", age:20, sex:0, job:"UI設計", skill:{ skillOne:"PhotoShop", SkillTwo:"UI", SkillThree:"Word+Excel+PPT" }, regeditTime:new Date() } db.workmate.update({name:"MinJie"},workmate3) print("[update]: The data was updated successfully");
但是如果每次都這么來改,多麻煩呢。我們平時大多還是使用update修改器來修改
下一節我們來認識update修改器
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/19219.html
摘要:命令檢查創建的集合命令從數據庫中刪除集合。命令從集合查詢數據將在非結構化的方式顯示所有的文件。如果顯示結果是格式化的,那么可以用除了方法還有方法,僅返回一個文檔。文檔排序方法,方法接受一個包含字段列表以及排序順序的文檔。 MongoDB啟動服務器 第一步:下載安裝包 第二步:解壓下載到的安裝包,找到bin目錄下面全部.exe文件 第三步:在該目錄下新建data文件夾,它將會作為數據存...
摘要:復制一份,命名為,修改文件內容如下注意改為我們第一步創建的目錄,端口號改為這個隨意,只要該端口沒被占用即可,表示這是一個配置服務器,另外由于我們的配置服務器要做成備份集,所以要設置。 分片是指將數據拆分,拆分后存放在不同的機器上的過程,以此來降低單個服務器的壓力,同時也解決單個服務器硬盤空間不足的問題,讓我們可以用廉價的機器實現高性能的數據架構。有的小伙伴不理解分片和副本集的差異,一言...
摘要:小結是聚合管道查詢使用的方法,參數是數組,每個數組元素就是一個,中運用操作符對數據進行處理后再交由下一個,直到沒有下個,就輸出最終的結果,而數據的處理則是通過使用操作符,本文先簡單介紹了一下有哪些常用的操作符,下一篇再詳細說明。 前言:一般查詢可以通過find方法,但如果是比較復雜的查詢或者數據統計的話,find可能就無能為力了,這時也許你需要的是aggregate. 什么是聚合管道(...
摘要:開公眾號差不多兩年了,有不少原創教程,當原創越來越多時,大家搜索起來就很不方便,因此做了一個索引幫助大家快速找到需要的文章系列處理登錄請求前后端分離一使用完美處理權限問題前后端分離二使用完美處理權限問題前后端分離三中密碼加鹽與中異常統一處理 開公眾號差不多兩年了,有不少原創教程,當原創越來越多時,大家搜索起來就很不方便,因此做了一個索引幫助大家快速找到需要的文章! Spring Boo...
閱讀 3492·2021-11-18 10:07
閱讀 1590·2021-11-04 16:08
閱讀 1515·2021-11-02 14:43
閱讀 1093·2021-10-09 09:59
閱讀 846·2021-09-08 10:43
閱讀 1084·2021-09-07 09:59
閱讀 968·2019-12-27 11:56
閱讀 1016·2019-08-30 15:56