java操作mongodb
代码1:
package com.ooooo.mongo; import java.net.UnknownHostException; import java.util.Set; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.junit.Test; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.MongoClient; import com.mongodb.MongoException; public class JavaMongoDBTest { /** * Java + MongoDB Hello world Example * */ public static void main(String[] args) { try { //实例化Mongo对象,连接27017端口 MongoClient mongo = new MongoClient("localhost", 27017); //连接名为yourdb的数据库,假如数据库不存在的话,mongodb会自动建立 DB db = mongo.getDB("ytn-db"); // Get collection from MongoDB, database named "yourDB" //从Mongodb中获得名为yourColleection的数据集合,如果该数据集合不存在,Mongodb会为其新建立 DBCollection collection = db.getCollection("yourCollection"); // 使用BasicDBObject对象创建一个mongodb的document,并给予赋值。 BasicDBObject document = new BasicDBObject(); document.put("id", 1002); document.put("msg", "hello world mongoDB in Java---ytan"); document.put("msg23", "hello world mongoDB in Java---yian--002"); document.put("msg23111", "hello world mongoDB in Java---yun--002"); //将新建立的document保存到collection中去 collection.insert(document); // 创建要查询的document BasicDBObject searchQuery = new BasicDBObject(); searchQuery.put("id", 1002); // 使用collection的find方法查找document DBCursor cursor = collection.find(searchQuery); //循环输出结果 while (cursor.hasNext()) { System.out.println(cursor.next()); } System.out.println("Done"); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } } @Test public void testcase01_MongoDB2json() throws Exception { //实例化Mongo对象,连接27017端口 MongoClient mongo = new MongoClient("localhost", 27017); //连接名为yourdb的数据库,假如数据库不存在的话,mongodb会自动建立 for (String s : mongo.getDatabaseNames()) { System.out.println(s); } DB db = mongo.getDB("ynt-db"); Set<String> collections = db.getCollectionNames(); for(String collectionName:collections){ System.out.println(collectionName); } // Get collection from MongoDB, database named "yourDB" //从Mongodb中获得名为yourColleection的数据集合,如果该数据集合不存在,Mongodb会为其新建立 DBCollection collection = db.getCollection("yourCollection"); BasicDBObject searchQuery = new BasicDBObject(); searchQuery.put("id", 1002); // 使用collection的find方法查找document DBCursor cursor = collection.find(searchQuery); JSONObject dataJson=new JSONObject(String.valueOf(cursor.next())); System.out.println(dataJson); //JSONObject response=dataJson.getJSONObject("msg"); //JSONArray data=response.getJSONArray("data"); //JSONObject info=data.getJSONObject(0); String province=dataJson.getString("msg"); String city=dataJson.getString("id"); String district=dataJson.getString("_id"); System.out.println(province+city+district); } }
mongodb mongo
使用mongoDB需要导入以下类,当然不是全部需要,用到的类就导入。 import com.mongodb.Mongo; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.BasicDBObject; import com.mongodb.DBObject; import com.mongodb.DBCursor; import com.mongodb.ObjectId; 类转换 当把一个类对象存到mongoDB后,从mongoDB取出来时使用setObjectClass()将其转换回原来的类。 public class Tweet implements DBObject { /* ... */ } Tweet myTweet = new Tweet(); myTweet.put("user", "bruce"); myTweet.put("message", "fun"); myTweet.put("date", new Date()); collection.insert(myTweet); //转换 collection.setObjectClass(Tweet); Tweet myTweet = (Tweet)collection.findOne(); 默认ID 当保存的对象没有设置ID时,mongoDB会默认给该条记录设置一个ID("_id")。 当然你也可以设置自己指定的ID,如:(在mongoDB中执行用db.users.save({_id:1,name:‘bruce‘});) BasicDBObject bo = new BasicDBObject(); bo.put(‘_id‘, 1); bo.put(‘name‘, ‘bruce‘); collection.insert(bo); 权限 判断是否有mongoDB的访问权限,有就返回true,否则返回false。 boolean auth = db.authenticate(myUserName, myPassword); 查看mongoDB数据库列表 Mongo m = new Mongo(); for (String s : m.getDatabaseNames()) { System.out.println(s); } 查看当前库下所有的表名,等于在mongoDB中执行show tables; Set<String> colls = db.getCollectionNames(); for (String s : colls) { System.out.println(s); } 查看一个表的索引 List<DBObject> list = coll.getIndexInfo(); for (DBObject o : list) { System.out.println(o); } 删除一个数据库 Mongo m = new Mongo(); m.dropDatabase("myDatabaseName"); 建立mongoDB的链接 Mongo m = new Mongo("localhost", 27017); DB db = m.getDB("myDatabaseName"); //相当于库名 DBCollection coll = db.getCollection("myUsersTable");//相当于表名 #查询数据 查询第一条记录 DBObject firstDoc = coll.findOne(); findOne()返回一个记录,而find()返回的是DBCursor游标对象。 查询全部数据 DBCursor cur = coll.find(); while(cur.hasNext()) { System.out.println(cur.next()); } 查询记录数量 coll.find().count(); coll.find(new BasicDBObject("age", 26)).count(); 设置条件查询 BasicDBObject condition = new BasicDBObject(); condition.put("name", "bruce"); condition.put("age", 26); coll.find(condition); 查询部分数据块 DBCursor cursor = coll.find().skip(0).limit(10); while(cursor.hasNext()) { System.out.println(cursor.next()); } 比较查询(age > 50) BasicDBObject condition = new BasicDBObject(); condition.put("age", new BasicDBObject("$gt", 50)); coll.find(condition); 比较符 "$gt": 大于 "$gte":大于等于 "$lt": 小于 "$lte":小于等于 "$in": 包含 //以下条件查询20<age<=30 condition.put("age", new BasicDBObject("$gt", 20).append("$lte", 30)); #插入数据 批量插入 List datas = new ArrayList(); for (int i=0; i < 100; i++) { BasicDBObject bo = new BasicDBObject(); bo.put("name", "bruce"); bo.append("age", i); datas.add(bo); } coll.insert(datas); 正则表达式 查询所有名字匹配 /joh?n/i 的记录 Pattern pattern = Pattern.compile("joh?n", CASE_INSENSITIVE); BasicDBObject query = new BasicDBObject("name", pattern); DBCursor cursor = coll.find(query);
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。