天天看點

個人筆記之java操作Mongojava操作Mongo

java操作Mongo

  • 不足之處歡迎留言

1、文檔型資料庫​

  1. MongoDB 是一個跨平台的,面向文檔的資料庫,是目前 NoSQL 資料庫産品中最熱 門 的一種。它介于關系資料庫和非關系資料庫之間,是非關系資料庫當中功能最豐富,最 像關 系資料庫的産品。它支援的資料結構非常松散,是類似 JSON 的 BSON 格式,是以可以 存 儲比較複雜的資料類型。
  2. MongoDB 的官方網站位址:http://www.mongodb.org/
  3. MongoDB與MySQL資料庫邏輯結構概念的對比
MongoDB 關系型資料庫Mysql
資料庫 資料庫
集合(collections) 表(table)
文檔(document) 行(row)

2、mongo服務啟動和停止

2.1、啟動

前提:配置好環境變量path

  • 任務管理器:啟動mongo服務
  • cmd:直接輸入mongo或mongod --dbpath data所在目錄

2.2、停止

  • 任務管理器:停止mongo服務
  • cmd:
    • 1)切換到admin權限,db.shutdownServer()
    • 2)檢視程序,使用kill指令,不能使用kill -9

3、常用指令

  • 模糊查詢:dp.集合名.find({字段:/str/})
  • 以str開頭:db.集合名.find({字段:/^str/})
  • 修改某條記錄:db.集合名.update(條件,修改後的資料),$set修改器

db.spit.update({userdi:“1”},{$set:{name:“小明”}})

  • 包含:$in:[]
  • 不包含:$nin:[]
  • 條件連接配接:$and[條件1,條件2]、$or[條件1,條件2]
  • BasicDBObject.put():表示一個具體的記錄。用來建構查詢條件。相當于map.
  • BasicDBList.add():可以存放多個BasicDBObject條件

4、java連接配接操作mongo

4.1、核心依賴

  • mongodb-driver是mongo官方推出的java連接配接mongoDB的驅動包,相當于JDBC驅動​​​​​​
  • 個人筆記之java操作Mongojava操作Mongo

4.2、操作步驟

  • 首先確定mongo中有資料庫并有要操作的表(本例:spitdb庫,spit表)

(1)建立連接配接

  • MongoClient mongoClient = new MongoClient("localhost");

(2)打開資料庫

  • MongoDatabase spitdb = mongoClient.getDatabase("spitdb");

(3)擷取某個集合(表)

  • MongoCollection<Document> spit = spitdb.getCollection("spit");

(4)查詢擷取集合中的文檔集合(表中資料記錄)

  • FindIterable<Document> documents = spit.find();
  • FindIterable<Document> documents = spit.find(條件Bson格式);

(5)關閉連接配接

  • mongoClient.close();

4.3、條件查詢

(1)建構查詢條件

  • 【例1-----userid為1013的】
  • BasicDBObject bson = new BasicDBObject("userid","1013");
  • 【例2-----浏覽量大于1000】
  • BasicDBObject bson = new BasicDBObject("visits",new BasicDBObject("$gt",1000));

(2)查詢集合中符合條件的文檔集合(表中資料記錄)

  • FindIterable<Document> documents = spit.find(bson);

(3)BasicDBObject:表示一個具體的記錄。用來建構查詢條件。相當于map.

(4)BasicDBList:可以存放多個BasicDBObject條件。

個人筆記之java操作Mongojava操作Mongo

4.4、插入資料

(1)将資料轉換為mongo中對應的document記錄

  • Document document = new Document(map);

(2)将document記錄插入表中

  • spit.insertOne(document);

(3)關閉連接配接

個人筆記之java操作Mongojava操作Mongo

5、總潔

  • 遇到的異常

bug1:Exception in monitor thread while connecting to server 192.168.1.160:27017

com.mongodb.MongoSocketOpenException: Exception opening socket

原因:本地測試ip隻能是localhost或者127.0.0.1,192.168.1.160不行。

bug2:java輸出Mongo中文亂碼或為問号

原因:BSON隻支援UTF8編碼。