package com.zhihua.mongodb.connection;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import org.bson.types.ObjectId;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
public class MongoDB_CRUD {
// 1.建立一个Mongo 的数据库连接对象
private static Mongo connection = null;
private static DB db = null;
@SuppressWarnings("deprecation")
public MongoDB_CRUD(String dbName) {
try {
connection = new Mongo("127.0.0.1:27017");
db = connection.getDB(dbName);
// 获取到这个数据库下的所有的集合名称
//Set<String> collectionNames = db.getCollectionNames();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// 实例化
MongoDB_CRUD mongo = new MongoDB_CRUD("foobar");
// 1.创建一个名字叫javadb的集合(不能重复创建一个集合)
//mongo.createCollection("javadb");
// 2.为集合javadb添加一条数据
// DBObject dbs = new BasicDBObject();
// dbs.put("name", "uspcat.com");
// dbs.put("age", 2);
// List<String> books = new ArrayList<String>();
// books.add("extjs");
// books.add("js");
// dbs.put("books", books);
// mongo.insert(dbs, "javadb");
// 3.批量插入数据
// List<DBObject> dbObjects = new ArrayList<DBObject>();
// DBObject jim = new BasicDBObject("name","jin");
// DBObject lisi = new BasicDBObject("name","lisi");
// dbObjects.add(lisi);
// dbObjects.add(jim);
// mongo.insertBatch(dbObjects, "javadb");
// 4.根据id删除数据
// mongo.deleteById("5b46bf31fb4b0e884d688325", "javadb");
// 5. 根据条件删除数据
// DBObject jim1 = new BasicDBObject();
// jim1.put("name", "jin");
// int count = mongo.deleteByDbs(jim1, "javadb");
// System.out.println("删除数据的条数是="+count);
// 6. 更新操作,为集合增加 email属性
// DBObject update = new BasicDBObject();
// update.put("$set", new BasicDBObject("eamil","[email protected]"));
// mongo.update(new BasicDBObject(), update, false, true, "javadb");
//
// 7.查询出persions集合中的name和age
// DBObject keys = new BasicDBObject();
// keys.put("_id", false);
// keys.put("name", true);
// keys.put("age", true);
// DBCursor cursor = mongo.find(null, keys, "persions");
// while(cursor.hasNext()){
// DBObject object = cursor.next();
// System.out.println(object.get("name"));
// }
// 8.查询出年龄大于26岁且英语成绩小于80分
// DBObject ref = new BasicDBObject();
// ref.put("age", new BasicDBObject("$gte",26));
// ref.put("e", new BasicDBObject("$lte",80));
// DBCursor cursor = mongo.find(ref, null, "persions");
// while(cursor.hasNext()){
// DBObject object = cursor.next();
// System.out.print(object.get("name")+"-->");
// System.out.print(object.get("age")+"-->");
// System.out.println(object.get("e"));
// }
// 8. 分页例子
DBCursor cursor = mongo.find(null, null,0,3,"demo");
while (cursor.hasNext()) {
DBObject object = cursor.next();
System.out.print(object);
}
//关闭连接对象
connection.close();
}
/**
* 创建一个数据库集合
*/
private void createCollection(String collectionName){
DBObject dbObject = new BasicDBObject();
db.createCollection(collectionName, dbObject);
}
// 为相应的集合添加数据
private void insert(DBObject dbObject,String collectionName){
// 得到集合
DBCollection collection = db.getCollection(collectionName);
collection.insert(dbObject);
}
// 为集合批量插入数据
private void insertBatch(List<DBObject> dbses,String collectionName){
// 1.得到集合
DBCollection collection = db.getCollection(collectionName);
// 2.插入操作
collection.insert(dbses);
}
// 根据id删除数据
private int deleteById(String id,String collectionName){
// 1.得到集合
DBCollection collection = db.getCollection(collectionName);
DBObject dbs = new BasicDBObject("_id",new ObjectId(id));
int count = collection.remove(dbs).getN();
return count;
}
// 根据条件删除数据 @return 返回影响的数据条数
private int deleteByDbs(DBObject dbs,String collectionName){
// 1. 得到集合
DBCollection collection = db.getCollection(collectionName);
int count = collection.remove(dbs).getN();
return count;
}
/**
* 更新数据
* @param find 查询器
* @param update 更新器
* @param upsert 更新或插入
* @param multi 是否批量更新
* @param collectionName 集合名称
* @return 返回影响的数据条数
*/
private int update(DBObject find,DBObject update,
boolean upsert,boolean multi,String collectionName){
// 1.得到集合
DBCollection collection = db.getCollection(collectionName);
int count = collection.update(find, update,upsert,multi).getN();
return count;
}
// 查询器(分页)
private DBCursor find(DBObject ref,DBObject keys,
int start,int limit,String collectionName){
DBCursor cursor = find(ref, keys, collectionName);
return cursor.limit(limit).skip(start);
}
// 查询器(不分页)
private DBCursor find(DBObject ref,DBObject keys,String collectionName){
// 1.得到集合
DBCollection collection = db.getCollection(collectionName);
DBCursor cursor = collection.find(ref,keys);
return cursor;
}
}
MongoDB笔记-CRUD(Java连接MongoDB)
猜你喜欢
转载自blog.csdn.net/hundan_520520/article/details/81012374
今日推荐
周排行