婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Java操作MongoDB數據庫方法詳解

Java操作MongoDB數據庫方法詳解

熱門標簽:杭州人工電銷機器人價格 電銷機器人是什么軟件 呼和浩特電銷外呼系統加盟 老虎洗衣店地圖標注 廣州長安公司怎樣申請400電話 濟南電銷機器人加盟公司 云南外呼系統 蘋果汽車租賃店地圖標注 怎么投訴地圖標注

Java與mongodb的連接

1. 連單臺mongodb

Mongo mg = new Mongo();//默認連本機127.0.0.1 端口為27017

Mongo mg = new Mongo(ip);//可以指定ip 端口默認為27017

Mongo mg = new Mongo(ip,port);//也可以指定ip及端口


2. 連雙臺mongodb

//ip為主機ip地址,port為端口號,dataBaseName相當于數據庫名

DBAddress left = new DBAddress("ip:port/dataBaseName");

DBAddress right = new DBAddress("ip:port/dataBaseName ");

//若一個mongodb出現問題,會自動連另外一臺

Mongo mongo = new Mongo(left, right);

3. 連多臺mongodb

ListServerAddress> mongoHostList = new ArrayListServerAddress>();

mongoHostList.add(new ServerAddress("ip",port));

mongoHostList.add(new ServerAddress("ip",port));

mongoHostList.add(new ServerAddress("ip",port));

Mongo mg = new Mongo(mongoHostList);

Java獲取mongodb的數據庫名

1. 獲取mongodb的db(數據庫)

//dataBaseName相當于關系數據庫里的數據庫名,mongodb中若沒有該

//數據庫名也不會報錯,默認mongodb會建立這個數據庫名,為空。

DB db = mg.getDB(dataBaseName);

注意:mongodb區分大小寫,程序中一定要注意

2.mongodb的db安全認證

//安全認證java代碼 返回true表示通過,false表示沒通過不能進行操作

db.authenticate("userName", "password".toCharArray());

if(db.authenticate("admin", "123".toCharArray())){

  System.out.println("連接mongodb成功...");

} else{

  System.out.println("連接mongodb失敗...");

}

Java對mongodb的collection進行crud操作

1.得到mongodb中的db的collection(表)

//參數tableName相當于關系數據庫里的表名,
//若mongodb中沒有該tableName,默認會創建該tableName,為空
DBCollection users = db.getCollection(tableName);
//列出庫的集合列表,相對于表對象
SetString> colls = db.getCollectionNames();
for(String s : colls){
}
// 獲取單個集合
DBCollection con = db.getCollection("users");

2.mongodb中的db的collection自增長主鍵

  Mongodb中也像傳統的關系數據庫里表一樣,有主鍵(_id)概念,用來唯一標識他們。當用戶往collection中插入一條新記錄的時候,如果沒有指定_id屬性,那么mongodb會自動生成一個ObjectId類型的值,保存為_id的值。

  _id的值可以為任何類型,除了數組,在實際應用中,鼓勵用戶自己定義_id值,但是要保證他的唯一性。

  傳統的數據庫中,通常用一個遞增的序列來提供主鍵,在Mongodb中用ObjectId來代替,我們可以通過如下的方法來得到主鍵。

public class Tools {
/**
 * 實現mongodb主鍵自增長的功能
 * @param users
 * @param tableName
 * @return
 */
public static long getNext(DBCollection users,String tableName){
long incId = 0;
try {
 DBObject ret = users.findAndModify(
 new BasicDBObject("_id", tableName), null, null, false,
 new BasicDBObject("$inc", new BasicDBObject("next", 1)),
 true, true);
 incId = Long.valueOf(ret.get("next").toString());
} catch (Exception e) {
 e.printStackTrace();
}
 return incId;
}
}

3.java對collection進行插入操作

DB db = m.getDB("testdb");
DBCollection con = db.getCollection("users");
//普通添加
BasicDBObject doc = new BasicDBObject();
doc.put("name", "MongoDB");
doc.put("type", "database");
doc.put("count", 1);
BasicDBObject info = new BasicDBObject();
info.put("x", 203);
info.put("y", 102);
doc.put("info", info);
con.insert(doc); //插入對象
//特殊添加
// 添加多個特殊數據(模式自由)
for(int i = 1; i =20; i++){
con.insert(new BasicDBObject().append("i", i));
}

DBObject user_json = (DBObject)JSON.parse("{'user':[{'name':'AAA', 'age':'18'},{'name':'BBB', 'age':'19'}]}");
con.insert(user_json);
//添加JAVA對象
// 添加java對象,對象要序列化Serializable接口
UserInfo userinfo = new UserInfo("用戶甲AA", 1);
User user = new User(1, "123", userinfo);
ByteArrayOutputStream os = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(os); 
out.writeObject(user);
os.close(); out.close();
con.insert(MonGoUtil.insertObject("user_info",os.toByteArray()));

ListUserInfo> list = new ArrayListUserInfo>();
list.add(new UserInfo("List1", 1));
list.add(new UserInfo("List2", 2));
list.add(new UserInfo("List3", 3));
ByteArrayOutputStream os = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(os); 
out.writeObject(list);
os.close(); out.close();
con.insert(MonGoUtil.insertObject("lists",os.toByteArray()));

4.java對collection的查詢操作

/** 輸出獲取到的文檔 **/

public static void showDBCursor(DBCursor cur){

 while(cur.hasNext()){

 System.out.println(cur.next());

 }

 System.out.println();

}

 高級查詢

//查詢_id為30000 返回cust_Id的值 ,mongodb查詢都會返回主鍵的值

System.out.println(users.findOne(new BasicDBObject("_id",30000),new BasicDBObject("cust_Id",true)));

findAndRemove() 查詢_id=30000的數據,并且刪除

users.findAndRemove(new BasicDBObject("_id", 30000));

findAndModify介紹

users.findAndModify(

    new BasicDBObject("_id", 28), //查詢_id=28的數據

    new BasicDBObject("cust_Id", true), //查詢cust_Id屬性

    new BasicDBObject("notice_Id", true), //按照notice_Id排序

    false, //查詢到的記錄是否刪除,true表示刪除

    new BasicDBObject("province_Id", "100"), //將province_id的值改為100

    true, //是否返回新記錄 true返回,false不返回

    true //如果沒有查詢到該數據是否插collection true入庫,false不入

));

查詢所有數據

//列出所有文檔

BasicDBObject query = new BasicDBObject();

System.out.println("列出"+ con.getName() +"集合(表)的所有文檔...");

showDBCursor(con.find());

查詢JAVA對象

String key = "user_info";

BasicDBObject query = new BasicDBObject();

query.put(key, new BasicDBObject("$exists", true));

byte[] b = (byte[])con.findOne(query).get(key);

InputStream inputStream = new ByteArrayInputStream(b);

ObjectInputStream in = new ObjectInputStream(inputStream); 

User users = (User) in.readObject();

System.out.println("用戶對象_json:" + JSONArray.fromObject(users));

 單一條件查詢(數字)

BasicDBObject query = new BasicDBObject();

query.put("i", 11);

showDBCursor(con.find(query));

 單一條件查詢(字符串)

BasicDBObject query = new BasicDBObject();

query.put("name", "MongoDB");

showDBCursor(con.find(query));

 $ne非等于查詢

BasicDBObject query = new BasicDBObject();

query.put("name", new BasicDBObject("$ne", "MongoDB"));

showDBCursor(con.find(query));

 根據列名查詢

System.out.println("查詢有'type'字段的數據..."); // false表示沒有

BasicDBObject query = new BasicDBObject();

query.put("type", new BasicDBObject("$exists", true)); // false

showDBCursor(con.find(query));

 單字段and查詢

System.out.println("單字段and條件的使用,i>=2 and i5 ,i:[2,5)...");

BasicDBObject query = new BasicDBObject();

query.put("i", new BasicDBObject("$gte", 2).append("$lt", 5));

showDBCursor(con.find(query));

 多字段and查詢

BasicDBObject query = new BasicDBObject();();

query.put("name", "MongoDB");

query.put("type", "database");

System.out.println(con.findOne(query));

showDBCursor(con.find(query));

 單字段or查詢

System.out.println("單字段or條件的使用,i2 or i>=18...");

BasicDBList values = new BasicDBList(); 

values.add(new BasicDBObject("i", new BasicDBObject("$gte", 18))); 

values.add(new BasicDBObject("i", new BasicDBObject("$lt", 2)));

BasicDBObject query = new BasicDBObject();();

query.put("$or", values);

showDBCursor(con.find(query));

多字段or查詢

// "多字段or條件的使用,name:'MongoDB' or x:'203'..."

BasicDBList values = new BasicDBList(); ();

values.add(new BasicDBObject("name", "MongoDB")); 

values.add(new BasicDBObject("x", 203));

BasicDBObject query = new BasicDBObject();();

query.put("$or", values);

showDBCursor(con.find(query));

$in 查詢

System.out.println("in條件的使用$in...");

BasicDBList values = new BasicDBList(); ();

for (int i = 1; i =10; i++) {

 values.add(i);

}

BasicDBObject query = new BasicDBObject();();

query.put("i", new BasicDBObject("$in", values));

showDBCursor(con.find(query));

Order By 排序查詢

System.out.println("排序[1=asc,-1=desc]...");

showDBCursor(con.find(query).sort(new BasicDBObject("i", -1)));

分頁查詢

// "分頁查詢的使用,總數據量:"+con.find(query).count()

con.find(query).limit(1); // 只取第1條數據

con.find(query).skip(1).limit(1); // 從1開始取1條數據,下標從0開始

con.find(query).sort(new BasicDBObject("i", -1)).skip(0).limit(5); // DESC后取5條數據

//findAndRemove()方法,刪除查詢到的數據,刪除后的結果集

con.findAndRemove(new BasicDBObject("i", 1));

showDBCursor(con.find(query));

con.findAndRemove(new BasicDBObject("i", new BasicDBObject("$in",  values))); //【注意:多個數值無效】

showDBCursor(con.find(query));

 (not)  OR  (not in)查詢

System.out.println("not,not in條件的使用$not");

BasicDBObject query = new BasicDBObject();();

query.put("i", new BasicDBObject("$not", new BasicDBObject("$in", values)));

showDBCursor(con.find(query));

 Like模糊查詢

System.out.println("like查詢的使用...");

BasicDBObject query = new BasicDBObject();();

query.put("type", MonGoUtil.getLikeStr("a"));

showDBCursor(con.find(query));

 根據字段類型查詢

System.out.println("根據數據類型查詢,字符類型...");

BasicDBObject query = new BasicDBObject();();

query.put("name", new BasicDBObject("$type", 2)); //字節

showDBCursor(con.find(query));

System.out.println("根據數據類型查詢,整型...");

BasicDBObject query = new BasicDBObject();();

query.put("i", new BasicDBObject("$type", 16));

showDBCursor(con.find(query));

  返回查詢的部分字段

//"查詢數據的部分字段,1表示只返回本字段,0表示返回除此字段之外的字段"

con.find(new BasicDBObject("name", MonGoUtil.getLikeStr("b")), new BasicDBObject("name", 1));


5.java對collection的更新操作

//查詢id為300的記錄,將cust_Id的值更新為6533615,一定要注意大小寫,以及數據//類型,返回值為int表示所影響的記錄條數

//可以用users.findOne(new BasicDBObject("_id",300));查看下,會發現這條記錄//只返回兩個字段了,分別為_id,cust_Id,別的字段都刪除了。

users.update(new BasicDBObject("_id",300), new BasicDBObject ("cust_Id","6533615")).getN();

// 參數3表示數據庫不存在是否添加(默認false),參數4表示是否多條修改(false只修改1條)

con.update(new BasicDBObject("name", "MongoDB"),

new BasicDBObject("$set", new BasicDBObject("type", "修改后的type"))).getN();

con.update(new BasicDBObject("name", "MongoDBs"),

new BasicDBObject("$set", new BasicDBObject("type", "修改后的type")), true, true).getN();


6.java對collection的刪除操作

/移除cust_Id為6533615的數據。注意 用remove方法不釋放磁盤空間,

//mongodb只在collection中做了標志,沒有正在刪除。

users.remove(new BasicDBObject("cust_Id","6533615")).getN();

//移除id>=1的數據

users.remove(newBasicDBObject("_id",new BasicDBObject("$gte",1))).getN();

//移除整個collection,drop也不釋放磁盤空間

users.drop();

// 根據條件刪除文檔(數據)

BasicDBList rls = new BasicDBList();

for (int i = 11; i = 20; i++) {

 rls.add(i);

}

query.put("i", new BasicDBObject("$in", rls));

con.remove(query);


7.讀取mongodb中Binary Data類型數據

 Binary binary = (Binary) doc.get("Data");

 byte[] data=binary.getData();

您可能感興趣的文章:
  • Java的idea連接mongodb數據庫的詳細教程
  • Java單例模式下的MongoDB數據庫操作工具類
  • Java操作Mongodb數據庫實現數據的增刪查改功能示例
  • 【MongoDB for Java】Java操作MongoDB數據庫
  • java實現mongodb的數據庫連接池
  • Java操作MongoDB數據庫示例分享
  • Java操作MongoDB數據庫的示例代碼

標簽:泰安 興安盟 自貢 雞西 遼陽 玉林 無錫 廈門

巨人網絡通訊聲明:本文標題《Java操作MongoDB數據庫方法詳解》,本文關鍵詞  Java,操作,MongoDB,數據庫,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Java操作MongoDB數據庫方法詳解》相關的同類信息!
  • 本頁收集關于Java操作MongoDB數據庫方法詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    狠狠v欧美v日韩v亚洲ⅴ| 久久久不卡网国产精品一区| 夜夜亚洲天天久久| 久久精品一区四区| 在线成人av影院| 99久久婷婷国产综合精品| 国产米奇在线777精品观看| 秋霞av亚洲一区二区三| 日韩一区欧美二区| 亚洲mv大片欧洲mv大片精品| 一区二区三区国产精品| 亚洲色图视频网站| 亚洲色欲色欲www| 国产精品免费视频观看| 欧美mv和日韩mv的网站| 欧美不卡视频一区| 日韩一区二区高清| 精品美女一区二区三区| 欧美日韩中文字幕精品| 99视频热这里只有精品免费| 国产福利一区二区三区视频| 美日韩黄色大片| 精品一二线国产| 国内精品久久久久影院色| 日韩av二区在线播放| 久久国产日韩欧美精品| 精品一区二区在线看| 免费人成精品欧美精品| 久久99在线观看| 国产主播一区二区三区| 不卡一二三区首页| 91毛片在线观看| 91麻豆精品国产91久久久久| 亚洲精品一区二区三区四区高清| 欧美日韩国产另类不卡| 69久久夜色精品国产69蝌蚪网 | 国产一区视频导航| 国产伦精品一区二区三区在线观看| 另类成人小视频在线| 激情久久五月天| 国产suv精品一区二区883| 色婷婷国产精品综合在线观看| 在线精品视频免费播放| 在线免费观看不卡av| 日韩一区二区在线看| 久久久久久亚洲综合影院红桃 | 麻豆精品一区二区综合av| 高清日韩电视剧大全免费| 在线观看日韩av先锋影音电影院| 日韩精品一区二区三区视频播放| 亚洲国产高清不卡| 婷婷国产在线综合| 成人午夜短视频| 欧美一级欧美三级在线观看 | 在线视频你懂得一区| 欧美大胆人体bbbb| 亚洲午夜羞羞片| 国产精品亚洲一区二区三区妖精| 91丨porny丨国产| 久久久久青草大香线综合精品| 亚洲一区电影777| 国产成人精品网址| 精品国产一区二区在线观看| 亚洲精品亚洲人成人网在线播放| 国产综合一区二区| 欧美一区二区三区四区视频| 亚洲女爱视频在线| 成人久久18免费网站麻豆| 精品久久国产字幕高潮| 亚洲国产毛片aaaaa无费看| 99久久婷婷国产精品综合| 亚洲精品在线免费观看视频| 日韩中文字幕1| 欧美一卡2卡3卡4卡| 一本久久精品一区二区| 91精品国产麻豆国产自产在线 | 久久久午夜精品理论片中文字幕| 一区二区国产视频| 国产呦精品一区二区三区网站| 欧美中文字幕一区二区三区亚洲| 久久婷婷一区二区三区| 午夜亚洲国产au精品一区二区| 国产高清在线观看免费不卡| 精品国产乱码久久久久久久久| 亚洲一级不卡视频| 懂色av一区二区三区蜜臀| 久久久久久久久蜜桃| 三级久久三级久久久| 91在线小视频| 日本一区二区视频在线观看| 午夜激情久久久| 欧美自拍偷拍一区| 亚洲欧美日韩一区二区 | 久久一二三国产| 久久精品国产色蜜蜜麻豆| 欧美日韩大陆一区二区| 亚洲综合一区在线| 在线中文字幕一区| 悠悠色在线精品| 欧美日韩在线综合| 亚洲国产wwwccc36天堂| 在线观看日韩电影| 午夜久久久影院| 91 com成人网| 久久成人久久鬼色| 欧美一级二级三级乱码| 秋霞影院一区二区| 在线播放日韩导航| 蜜桃久久久久久久| 日韩欧美国产午夜精品| 国精产品一区一区三区mba视频| 亚洲精品一区二区三区蜜桃下载| 五月激情综合网| 欧美一区二区三区人| 激情综合一区二区三区| 久久亚洲免费视频| 国内偷窥港台综合视频在线播放| 亚洲精品一区二区三区福利| 蜜臀久久99精品久久久久久9| 欧美一区二区黄色| 国内成人精品2018免费看| 中文字幕的久久| 色婷婷综合五月| 美腿丝袜在线亚洲一区| 久久综合国产精品| 成人av在线一区二区三区| 亚洲图片一区二区| 欧美刺激午夜性久久久久久久| 国产经典欧美精品| 亚洲激情网站免费观看| 欧美不卡123| 91香蕉视频mp4| 免费成人av在线| 亚洲欧洲性图库| 欧美性videosxxxxx| 美女视频黄频大全不卡视频在线播放| 久久影音资源网| 在线免费精品视频| 午夜成人免费电影| 久久久99精品免费观看不卡| 精品视频在线视频| 麻豆精品新av中文字幕| 亚洲乱码国产乱码精品精可以看| 日韩欧美久久久| 91成人在线精品| www..com久久爱| 国产一区二区三区av电影| 亚洲国产日韩精品| 国产精品久久福利| 久久影院电视剧免费观看| 欧美日韩国产精品自在自线| 国产成人av自拍| 日韩高清一级片| 一区二区三区产品免费精品久久75| 久久影院午夜片一区| 欧美一区二区三区四区视频| 欧美日韩一区不卡| 在线欧美一区二区| 在线一区二区三区做爰视频网站| 国产精品一级黄| 蜜桃久久久久久| 日韩国产精品91| 亚洲午夜精品17c| 国产精品无遮挡| 久久精品日产第一区二区三区高清版 | 国产成人a级片| 精品亚洲国内自在自线福利| 日本欧美韩国一区三区| 午夜精品国产更新| 亚洲成人精品一区二区| 亚洲国产wwwccc36天堂| 亚洲国产cao| 午夜国产精品影院在线观看| 午夜一区二区三区在线观看| 亚洲综合色区另类av| 亚洲午夜免费电影| 三级亚洲高清视频| 日韩电影一二三区| 舔着乳尖日韩一区| 亚洲va欧美va国产va天堂影院| 午夜国产精品影院在线观看| 日韩精品亚洲专区| 麻豆91免费观看| 国产一区欧美日韩| 成人性生交大合| 成人黄色a**站在线观看| www.在线成人| 欧美中文字幕亚洲一区二区va在线| 色老头久久综合| 欧美绝品在线观看成人午夜影视| 色老汉一区二区三区| 国产黄色精品视频| jizzjizzjizz欧美| 亚洲第一激情av| 亚洲第一福利一区| 日韩精品一级中文字幕精品视频免费观看| 一区二区三区四区在线| 日韩在线一区二区| 国产精品一区二区男女羞羞无遮挡 | 亚洲精品国产无套在线观|