MongoDB javaApi

MongoDB javaApi

public class MonogTest1 {

    private static Mongo mongo;
    private static DB dataBase;

    static {
        try {
            mongo = new Mongo("localhost", 27017);
            dataBase = mongo.getDB("db1");
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
  /**
     * 获取所有的数据库
     */
    public static  void getDataBaseName(){
        List<String> databaseNames = mongo.getDatabaseNames();
        for(String name:databaseNames){
            System.out.println(name);
        }
    }

    /**
     * 获取某个数据库的所有集合
     */
    public static void getCollects(){
        Set<String> collectionNames = dataBase.getCollectionNames();
        for(String name:collectionNames){
            System.out.println(name);
        }
    }
    //获取全部列表
    public static void getList() {
        DBCollection c2 = dataBase.getCollection("c5");
        DBCursor dbObjects = c2.find();//返回值是个游标
        System.out.println(c2.count());//条数
        while (dbObjects.hasNext()) {
            //System.out.println(dbObjects.next().get("name"));
            System.out.println(dbObjects.next());
        }
        System.out.println(JSON.serialize(dbObjects));//将返回的数据饭转化成json串
        mongo.close();
    }

    /**
     * 显示某个具体的字段
     * 1、id设置为false后查询的记过将不显示
     * 2、除了id之外在控制显示字段的DBObject中将想显示的字段添加上,并且其设置为true
     * 3、 如果分页的话可以在后面加上.skip(2).limit(3)
     * 4、排序的时候可以在后面在加上sort执行顺序是先执行sort然后在执行SKIPT和limit
     */
    public static void SelectIterm(){
        DBCollection collection = dataBase.getCollection("c5");
        DBObject keys = new BasicDBObject();
		keys.put("_id", false);
		keys.put("name", true);
		keys.put("age", true);
        keys.put("size",true);
		DBCursor cursor = collection.find(null, keys).sort(new BasicDBObject("age", -1)).skip(2).limit(3);
	    while (cursor.hasNext()) {
		    DBObject object = cursor.next();
		    System.out.println(object);
	    }
    }

    //根据条件删除
    public static void deleteIterm() {
        DBCollection collection = dataBase.getCollection("c5");
        //BasicDBObject o = new BasicDBObject("_id",new ObjectId("56c742e59ffc01ee27c96a92"));
        BasicDBObject o = new BasicDBObject();
        //o.put("_id",new ObjectId("56c743679ffc01ee27c96a94"));
        o.put("name", "user4");
        WriteResult remove = collection.remove(o);
        System.out.println(remove.getN());//删除几条
        mongo.close();
    }

    //增加:单个
    public static void save() {
        DBCollection collect = dataBase.getCollection("c5");
        BasicDBObject o = new BasicDBObject();
        o.put("name", "hwj");
        o.put("age", 14);
        List<String> list = new ArrayList<String>();
        list.add("aa");
        list.add("bb");
        o.put("lists", list);
        WriteResult save = collect.insert(o);

        System.out.println(save.getN());//不会返回存储的条数
    }

    //增加:批量
    public static void saveBath() {
        DBCollection collect = dataBase.getCollection("c5");
        BasicDBObject o = new BasicDBObject();
        o.put("name", "hwj");
        BasicDBObject o1 = new BasicDBObject();
        o1.put("name", "dd");
        List<DBObject> li = new ArrayList<DBObject>();
        li.add(o);
        li.add(o1);
        WriteResult save = collect.insert(li);
    }


    //更新:更改需要先查出来,查出来之后再更改。
    public static void update() {
        DBCollection collect = dataBase.getCollection("c5");
        BasicDBObject o = new BasicDBObject();//修改条件
        o.put("_id", new ObjectId("56c743719ffc01ee27c96a96"));
        DBObject obj = collect.findOne(o);
        obj.put("age", 30);
        obj.put("adress", "VBeijing");//添加字段
        collect.update(o, obj);

  //      第二种更新的方式
        // DBObject update = new BasicDBObject();
//		update.put("$set",new BasicDBObject("eamil","1234@126.com"));
//		mongoDb.update(new BasicDBObject(),update,false,true,"c5");
    }


    public static void main(String[] args) {
       // getList();
        //deleteIterm();
        //save();
        //update();
        // saveBath();
        SelectIterm();
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值