
---------------------MongoDB基本操作---------------------
1、MongoDB創建數據庫
use 數據庫名:切換到指定的數據庫中,在插入第一個條數據的時候,創建對應的數據庫。
show dbs:顯示所有的數據庫名。
db:查看當前數據庫的名稱。
show collections:查看當前db所有的collections。
db.集合名.insert({"name":"python"}):為指定的集合添加一條數據。
2、MongoDB刪除數據庫
db.dropDataBase():刪除當前數據庫。
3、MongoDB創建集合
db.createCollection(name,options):
參數 類型 描述
Name String 要創建的集合名稱
Options Document (可選)指定有關內存大小和索引選項
字段 類型 描述
capped Boolean (可選)如果為true,則啟用封頂集合。封頂集合是固定大小的集合,當它達到其最大大小,會自 動覆蓋最早的條目。如果指定true,則需要也指定size字段。
autoIndexID Boolean (可選)如果為true,自動創建索引_id字段, 默認值是false。
size number (可選)指定集合最大可使用字節。如果封頂如果是 true,那么你還需要指定這個字段。
max number (可選)指定封頂集合允許在文件的最大數量。Size限制優先於此限制。如果一個封頂集合達到大小size限制,未達到文件的最大數量,MongoDB刪除舊的文件。如果您更喜歡使用max,確保為上限的集合所需的大小限制,足以包含文檔的最大數量。
例:db.createCollection("log",{ capped : true, size : 5242880, max : 5000 } )
4、MongoDB刪除集合
db.集合名.drop()
5、MongoDB數據類型
1、String : 這是最常用的數據類型來存儲數據。在MongoDB中的字符串必須是有效的UTF-8。
2、Integer : 這種類型是用來存儲一個數值。整數可以是32位或64位,這取決於您的服務器。
3、Boolean : 此類型用於存儲一個布爾值 (true/ false) 。
4、Double : 這種類型是用來存儲浮點值。
5、Min/ Max keys : 這種類型被用來對BSON元素的最低和最高值比較。
6、Arrays : 使用此類型的數組或列表或多個值存儲到一個鍵。
7、Timestamp : 時間戳。這可以方便記錄時的文件已被修改或添加。
8、Object : 此數據類型用於嵌入式的文件。
9、Null : 這種類型是用來存儲一個Null值。
10、Symbol : 此數據類型用於字符串相同,但它通常是保留給特定符號類型的語言使用。
11、Date : 此數據類型用於存儲當前日期或時間的UNIX時間格式。可以指定自己的日期和時間,日期和年,月,日到創建對象。
12、Object ID : 此數據類型用於存儲文檔的ID。
13、Binary data : 此數據類型用於存儲二進制數據。
14、Code : 此數據類型用於存儲到文檔中的JavaScript代碼。
15、Regular expression : 此數據類型用於存儲正則表達式。
6、MongoDB插入文檔
插入數據可以使用insert()和save():
db.集合名字.insert(行數據信息)。
例:
db.mongoDBtest.insert(
{
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'tutorials itcast',
url: 'http://www.itcast.cn',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
}
)
7、MongoDB查詢文檔
1、查詢:
db.集合名.find():查詢當前集合的數據信息。
db.集合名.findOne():查詢當前集合的第一條數據信息。
pretty():結果顯示在一個格式化的方式。
2、AND的使用:
在 find() 方法,如果通過多個鍵分離',',那么 MongoDB 處理 AND 條件
語法:db.mongoDBtest.find({key1:value1, key2:value2}).pretty()
3、OR的使用
OR條件的基礎上要查詢文件,需要使用$or關鍵字。
>db.mongoDBtest.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()
4、AND和OR一起使用
db.mongoDBtest.find({
key1:value1,
$or:[
{key1:value1},{key2:value2}
]
}).pretty()
5、MongoDB limit與skip方法
limit:顯示指定多少條數據。
skip:跳過指定多少條數據。
db.mongoDBtest.find().limit(10).skip(100):顯示100-110條數據
6、MongoDB 投影
投影意思是查詢到的返回結果中,只選擇必要的字段,而不是選擇一個文檔的整個字段。
如果一個文檔有5個字段,需要顯示只有3個,投影其中3個字段即可。
語法:
db.mongoDBtest.find({},{"name":1,_id:0})
7、MongoDB 排序
語法
sort()方法基本語法如下所示:
>db.集合名.find().sort({KEY:1})
sort()方法可以通過參數指定排序的字段,並使用 1 和 -1 來指定排序的方式,其中 1 為升序排列,而-1是用於降序排列。
8、MongoDB 求Count
使用count()方法對數據統計個數
語法
count()方法基本語法如下所示:
>db.集合名.find({}).count()
或者
db.集合名.count({})
> db.mongoDBtest.find({'likes':{'$gt':20}}).count()
9、MongoDB 求distinct
使用distinct()方法對數據進行去重統計
語法
distinct()方法基本語法如下所示:
>db.集合名.distinct('key',{})
> db.mongoDBtest.distinct('title',{'likes':{'$gt':20}})
8、MongoDB更新文檔
1、MongoDB 使用 update() 和 save() 方法來更新集合中的文檔。
2、語法:
update() 方法的基本語法如下
db.mongoDBtest.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
3、語法中對應的參數介紹:
query : update的查詢條件,類似sql update查詢內where后面的。
update : update的對象和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢內set后面的
upsert : 可選,這個參數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,默認是false,不插入。
multi : 可選,mongodb 默認是false,只更新找到的第一條記錄,如果這個參數為true,就把按條件查出來多條記錄全部更新。
writeConcern :可選,拋出異常的級別。
4、例:
>db.mongoDBtest.update({'by':'tutorials itcast'},{$set:{'by':'itcast'}},{multi:true})
9、MongoDB刪除文檔
1、MongoDB remove()函數是用來移除集合中的文檔。
2、語法
基本語法remove()方法如下
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
3、參數說明:
query :(可選)刪除的文檔的條件。
justOne : (可選)如果設為 true 或 1,則只刪除一個文檔。默認false
writeConcern :(可選)拋出異常的級別。
4、例:
db.myLimit.remove({"_id" : {$gt:0}},1)