標籤:
---------------------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 : 此資料類型用於儲存Regex。 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)
MongoDB基本shell操作