mongodb初学-java操作mongodb

下载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>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值