下载java操作mongodb的jar包:点击打开链接
demo如下:
<span style="font-size:18px;">package dfb.com;
import org.bson.types.ObjectId;
import com.mongodb.BasicDBObject;
import com.mongodb.Bytes;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.QueryOperators;
import com.mongodb.WriteResult;
public class MongodbTest {
public static void main(String[] args) throws Exception {
/*String host ="xx.xx.xx.xx";
int port = 27017;
String dbname = "xx";
String username ="xx";
char[] password = "xx".toCharArray();*/
String host ="127.0.0.1";//数据库主机
int port = 27017;//数据库端口
String dbname = "myFirstDb";//数据库名称
MongoClient mongoClient = new MongoClient(host, port);
DB db = mongoClient.getDB(dbname);//获取数据库
/*CommandResult cr = db.authenticateCommand(username, password);//使用密码链接数据库
System.out.println(cr.ok());*/
//通过collection名称获取user的聚合
DBCollection users = db.getCollection("dong");//获取名称为dong的collection(类似关系型数据库的table)
long count = users.getCount();//获取collection的数据总数(类似table的数据记录条数)
System.out.println("users的数据量"+count);
DBCursor usersVal = users.find();//获取所有的collection数据(类似table的数据记录)
//添加
DBObject usejo = new BasicDBObject();
usejo.put("name", "midWinter");
usejo.put("age", "18");
WriteResult save = users.save(usejo);//向collection中保存数据
long countNew = users.getCount();
System.out.println(save);
System.out.println(save.toString());
System.out.println("users的类型"+users);
System.out.println("users的new数据量"+countNew);
//更新
BasicDBObject orgEdit = new BasicDBObject("id", new ObjectId("4dde25d06be7c53ffbd70906"));//被修改记录
BasicDBObject newEdit = new BasicDBObject("age", 27);//修改age=27
users.update(orgEdit, newEdit,
true,//如果数据库不存在,添加false不添加
false//false只修改第一条,true如果有多条就修改
);
//删除
users.remove(new BasicDBObject("id", new ObjectId("4dde25d06be7c53ffbd70906")));
//查询
//查询id = 4de73f7acd812d61b4626a77
System.out.println("find id = 4de73f7acd812d61b4626a77: " + users.find(new BasicDBObject("_id", new ObjectId("4de73f7acd812d61b4626a77"))).toArray());
//查询age = 24
System.out.println("find age = 24: " + users.find(new BasicDBObject("age", 24)).toArray());
//查询age >= 24
System.out.println("find age >= 24: " + users.find(new BasicDBObject("age", new BasicDBObject("$gte", 24))).toArray());
System.out.println("find age <= 24: " + users.find(new BasicDBObject("age", new BasicDBObject("$lte", 24))).toArray());
System.out.println("查询age!=25:" + users.find(new BasicDBObject("age", new BasicDBObject("$ne", 25))).toArray());
System.out.println("查询age in 25/26/27:" + users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.IN, new int[] { 25, 26, 27 }))).toArray());
System.out.println("查询age not in 25/26/27:" + users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.NIN, new int[] { 25, 26, 27 }))).toArray());
System.out.println("查询age exists 排序:" + users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.EXISTS, true))).toArray());
System.out.println("只查询age属性:" + users.find(null, new BasicDBObject("age", true)).toArray());
System.out.println("只查属性:" + users.find(null, new BasicDBObject("age", true), 0, 2).toArray());
System.out.println("只查属性:" + users.find(null, new BasicDBObject("age", true), 0, 2, Bytes.QUERYOPTION_NOTIMEOUT).toArray());
//只查询一条数据,多条去第一条
System.out.println("findOne: " + users.findOne());
System.out.println("findOne: " + users.findOne(new BasicDBObject("age", 26)));
System.out.println("findOne: " + users.findOne(new BasicDBObject("age", 26), new BasicDBObject("name", true)));
//查询修改、删除
System.out.println("findAndRemove 查询age=25的数据,并且删除: " + users.findAndRemove(new BasicDBObject("age", 25)));
//查询age=26的数据,并且修改name的值为Abc
System.out.println("findAndModify: " + users.findAndModify(new BasicDBObject("age", 26), new BasicDBObject("name", "Abc")));
System.out.println("findAndModify: " + users.findAndModify(
new BasicDBObject("age", 28), //查询age=28的数据
new BasicDBObject("name", true), //查询name属性
new BasicDBObject("age", true), //按照age排序
false, //是否删除,true表示删除
new BasicDBObject("name", "Abc"), //修改的值,将name修改成Abc
true,
true));
/*获取所有的collection名称(类似关系行数据库的所有table名称)
* Set<String> collectionNames = db.getCollectionNames();
for(String collName:collectionNames)
{
System.out.println(collName);
}*/
// new Document
}
}
</span>