什麼是MongoDB
MongoDB 是一個跨平臺的,面向文檔的數據庫,是當前 NoSQL 數據庫產品中最熱門的一種。它介於關係數據庫和非關係數據庫之間,是非關係數據庫當中功能最豐富,最像關係數據庫的產品。它支持的數據結構很是鬆散,是相似 JSON 的 BSON 格式,所以能夠存儲比較複雜的數據類型。java
MongoDB特色
MongoDB 最大的特色是他支持的查詢語言很是強大,其語法有點相似於面向對象的查詢語言,幾乎能夠實現相似關係數據庫單表查詢的絕大部分功能,並且還支持對數據創建索引。它是一個面向集合的,模式自由的文檔型數據庫。正則表達式
MongoDB體系結構
MongoDB 的邏輯結構是一種層次結構。主要由:文檔(document)、集合(collection)、數據庫(database)這三部分組成的。邏輯結構是面向用戶的,用戶使用 MongoDB 開發應用程序使用的就是邏輯結構。spring
文檔(document)、集合(collection)、數據庫(database)的層次結構以下圖:
mongodb
代碼:查詢和文檔中能夠包括任何JavaScript代碼,{「x」:function(){/…/}}shell
window系統MongoDB安裝
雙擊安裝,並將 D:\Program Files\MongoDB\Server\3.2\bin
添加到path數據庫
md d:\data
mongod --dbpath=d:\data
咱們在啓動信息中能夠看到,mongoDB的默認端口是27017
若是咱們想改變默認的啓動端口,能夠經過--port來指定端口在命令提示符輸入如下命令便可完成登錄 mongo
退出mongodb exit
數組
示例:查詢吐槽瀏覽量大於1000的記錄 db.spit.find({visits:{$gt:1000}})
數據結構
包含與不包含
包含使用$in操做符。框架
db.spit.find({userid:{$in:["1013","1014"]}})
不包含使用$nin操做符.雲計算
db.spit.find({userid:{$nin:["1013","1014"]}})
條件鏈接
咱們若是須要查詢同時知足兩個以上條件,須要使用$and操做符將條件進行關聯。(至關於SQL的and)
$and:[ { },{ },{ } ]
示例:查詢吐槽集合中visits大於等於1000 而且小於2000的文檔
db.spit.find({$and:[ {visits:{$gte:1000}} ,{visits:{$lt:2000} }]})
若是兩個以上條件之間是或者的關係,咱們使用 操做符進行關聯,與前面and的使用方式相同
$or:[ { },{ },{ } ]
示例:查詢吐槽集合中userid爲1013,或者瀏覽量小於2000的文檔記錄
db.spit.find({$or:[ {userid:"1013"} ,{visits:{$lt:2000} }]})
列值增加
若是咱們想實現對某列值在原有值的基礎上進行增長或減小,可使用$inc運算符來實現
db.spit.update({_id:"2"},{$inc:{visits:NumberInt(1)}} )
mongodb-driver
mongodb-driver是mongo官方推出的java鏈接mongoDB的驅動包,至關於JDBC驅動。咱們經過一個入門的案例來了解mongodb-driver的基本使用
代碼實現
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.11.1</version> </dependency>
public class MongoDemo1 { public static void main(String[] args) { MongoClient client=new MongoClient("192.168.58.128");//建立鏈接 MongoDatabase spitdb = client.getDatabase("spitdb");//打開數據庫 MongoCollection<Document> spit = spitdb.getCollection("spit");// BasicDBObject bson=new BasicDBObject("userid","1013");// 構建查詢 FindIterable<Document> documents = spit.find(bson);//查詢記錄獲取結 for(Document document:documents){ // System.out.println("內容:"+ document.getString("content")); System.out.println("用戶ID:"+document.getString("userid")); System.out.println("瀏覽量:"+document.getInteger("visits")); } client.close();//關閉鏈接 } }
SpringData家族成員之一,用於操做MongoDb的持久層框架,封裝了底層的mongodbdriver。
有序列表項 三