java操作mongodb3_如何使用Java操作MongoDB(3)

{"_id" : {"$oid" : "x"} , "hosting" : "hostC" , "clients" : "888" , "type" : "vps"}

最后,还是给出更新document的完整例子:

package com.liao;

import java.net.UnknownHostException;

import com.mongodb.BasicDBObject;

import com.mongodb.DB;

import com.mongodb.DBCollection;

import com.mongodb.DBCursor;

import com.mongodb.Mongo;

import com.mongodb.MongoException;

publicclass UpdateDocumentApp {

publicstaticvoid printAllDocuments(DBCollection collection){

DBCursor cursor = collection.find();

while (cursor.hasNext()) {

System.out.println(cursor.next());

}

}

publicstaticvoid removeAllDocuments(DBCollection collection){

collection.remove(new BasicDBObject());

}

publicstaticvoid insertDummyDocuments(DBCollection collection){

BasicDBObject document = new BasicDBObject();

document.put("hosting", "hostA");

document.put("type", "vps");

document.put("clients", 1000);

BasicDBObject document2 = new BasicDBObject();

document2.put("hosting", "hostB");

document2.put("type", "dedicated server");

document2.put("clients", 100);

BasicDBObject document3 = new BasicDBObject();

document3.put("hosting", "hostC");

document3.put("type", "vps");

document3.put("clients", 900);

collection.insert(document);

collection.insert(document2);

collection.insert(document3);

}

publicstaticvoid main(String[] args) {

try {

Mongo mongo = new Mongo("localhost", 27017);

DB db = mongo.getDB("yourdb");

DBCollection collection = db.getCollection("dummyColl");

System.out.println("Testing 1...");

insertDummyDocuments(collection);

//find hosting = hostB, and update it with new document

BasicDBObject newDocument = new BasicDBObject();

newDocument.put("hosting", "hostB");

newDocument.put("type", "shared host");

newDocument.put("clients", 111);

collection.update(new BasicDBObject().append("hosting", "hostB"), newDocument);

printAllDocuments(collection);

removeAllDocuments(collection);

System.out.println("Testing 2...");

insertDummyDocuments(collection);

BasicDBObject newDocument2 = new BasicDBObject().append("$inc",

new BasicDBObject().append("clients", 99));

collection.update(new BasicDBObject().append("hosting", "hostB"), newDocument2);

printAllDocuments(collection);

removeAllDocuments(collection);

System.out.println("Testing 3...");

insertDummyDocuments(collection);

BasicDBObject newDocument3 = new BasicDBObject().append("$set",

new BasicDBObject().append("type", "dedicated server"));

collection.update(new BasicDBObject().append("hosting", "hostA"), newDocument3);

printAllDocuments(collection);

removeAllDocuments(collection);

System.out.println("Testing 4...");

insertDummyDocuments(collection);

BasicDBObject updateQuery = new BasicDBObject().append("$set",

new BasicDBObject().append("clients", "888"));

collection.update(

new BasicDBObject().append("type", "vps"), updateQuery, false, true);

printAllDocuments(collection);

removeAllDocuments(collection);

System.out.println("Done");

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (MongoException e) {

e.printStackTrace();

}

}

}

查询Document

下面学习如何查询document,先用下面的代码往数据库中插入1-10数字:

for(int i=1; i <=10; i++){

collection.insert(new BasicDBObject().append("number", i));

}

接下来,看下如下的例子:

1) 获得数据库中的第一个document:

DBObject doc = collection.findOne();

System.out.println(dbObject);

输出为:

{"_id" : {"$oid" : "4dc7f7b7bd0fb9a86c6c80bd"} , "number" : 1}

2)获得document的集合

DBCursor cursor = collection.find();

while(cursor.hasNext()){

System.out.println(cursor.next());

}

这里,使用collection.find()方法,获得当前数据库中所有的documents对象集合

然后通过对DBCursor对象集合的遍历,即可输出当前所有documents。输出如下:

{"_id" : {"$oid" : "4dc7f7b7bd0fb9a86c6c80bd"} , "number" : 1}

//..........中间部分省略,为2到9的输出

{"_id" : {"$oid" : "4dc7f7b7bd0fb9a86c6c80c6"} , "number" : 10}

3) 获取指定的document

比如要获得number=5的document对象内容,可以使用collection的find方法即可,如下:

BasicDBObject query =new BasicDBObject();

query.put("number", 5);

DBCursor cursor = collection.find(query);

while(cursor.hasNext()){

System.out.println(cursor.next());

}

即输出:

{"_id" : {"$oid" : "4dc7f7b7bd0fb9a86c6c80c1"} , "number" : 5}

4) 使用in操作符号

在mongodb中,也可以使用in操作符,比如要获得number=9和number=10的document对象,可以如下操作:

BasicDBObject query =new BasicDBObject();

List list =new ArrayList();

list.add(9);

list.add(10);

query.put("number", new BasicDBObject("$in", list));

DBCursor cursor = collection.find(query);

while(cursor.hasNext()){

System.out.println(cursor.next());

}

这里使用了一个List,并将list传入到BasicDBObject的构造函数中,并使用了in操作符号,输出如下:

{"_id" : {"$oid" : "4dc7f7b7bd0fb9a86c6c80c5"} , "number" : 9}

{"_id" : {"$oid" : "4dc7f7b7bd0fb9a86c6c80c6"} , "number" : 10}

5) 使用>,

在mongodb中,也可以使用比如>,5的document集合,则使用“$gt”即可,同理,小于关系则使用$lt,例子如下:

BasicDBObject query =new BasicDBObject();

query.put("number", new BasicDBObject("$gt", 5));

DBCursor cursor = collection.find(query);

while(cursor.hasNext()){

System.out.println(cursor.next());

}

输出如下:

{"_id" : {"$oid" : "4dc7f7b7bd0fb9a86c6c80c2"} , "number" : 6}

{"_id" : {"$oid" : "4dc7f7b7bd0fb9a86c6c80c3"} , "number" : 7}

{"_id" : {"$oid" : "4dc7f7b7bd0fb9a86c6c80c4"} , "number" : 8}

{"_id" : {"$oid" : "4dc7f7b7bd0fb9a86c6c80c5"} , "number" : 9}

{"_id" : {"$oid" : "4dc7f7b7bd0fb9a86c6c80c6"} , "number" : 10}

也可以多个比较符号一起使用,比如要输出number>5和number<8的document,则如下:

BasicDBObject query =new BasicDBObject();

query.put("number", new BasicDBObject("$gt", 5).append("$lt", 8));

DBCursor cursor = collection.find(query);

while(cursor.hasNext()){

System.out.println(cursor.next());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值