1. 程式人生 > >關於NOSQL和MongoDB的一點學習心得

關於NOSQL和MongoDB的一點學習心得

這節課主要學習了NOSQL和有關mongodb的基本知識和基本操作

首先是NOSQL

NOSQL是一種非關係型的資料庫。隨著網際網路的興起,傳統的關係資料庫在許多大規模資料處理面前已經顯得力不從心,而非關係型資料庫的產生解決了該類問題。NOSQL全稱not only SQL,此處注意NO SQL並不是指非SQL。

SQL分為四大類,分別是

1.鍵值(Key-Value)儲存資料庫

2.列儲存資料庫

3.文件型資料庫

4.圖形(Graph)資料庫

詳情可以到這位大神這裡看看

其次是mongodb

mongodb是一個基於分散式檔案儲存的資料庫,其將資料儲存為一個文件,每一個數據由基本的鍵值(key,value)對組成。

以下是mongodb的一些基本操作

首先是在python上安裝mongodb,開啟終端,輸入

sudo apt-get install mongodb
安裝成功之後可以選擇關閉終端,開啟新的終端視窗鍵入mogodb,進入操作介面,新手的話可以鍵入help檢視關於mogodb的一些基本命令


這裡先說一下集合和資料庫的關係,多個文件構成集合,多個集合組成資料庫。一個MongoDB例項可以承載多個數據庫,每個資料庫可以擁有0到多個集合。

一下是一些基本的操作命令

use yourDB; //切換/建立資料庫
show dbs;//查詢所有資料庫
db.dropDatabase();//刪除當前使用資料庫
db.getName();//檢視當前使用的資料庫

show collections;檢視文件集合
db.createCollection(“文件名”, {“name”: “    ”});//建立文件集
db.文件名.insert({“name”:”    ”});//插入新建
db.文件名.drop();//刪除文件


關於文件記錄的增刪查改


(1)增加記錄:

db.文件名.insert({“name”: “myname”, “age”: 20, “area”: “st”});

(2)查詢記錄:
通用的查詢: db.文件名.find().pretty();
特定查詢: db.文件名. find({“name”: “myname”});
模糊查詢: db.文件名.find({“name”: /my/”})

(3)修改記錄:
db.collection.update(criteria, objNew, upsert, multi)

criteria: update的查詢條件, 類似sql update 查詢內where 後面的;
objNew: update 的物件和一些更新的操作符等,也可以理解為sql update查詢內set後面的
upset: 這個引數的意思是, 如果不存在update的記錄, 是否插入objNew, true為插入, 預設是false, 不插入.
Multi: mongodb預設是false, 只更新找到的第一條記錄, 如果這個引數為true, 就把按條件查出來多條記錄全部更新.
例子:db.文件名.update({"age" : 20},{set:{"name":"    "}},false, false);

(4)刪除記錄:

db.文件名.remove({"area":"gd"});