注:本文所有代码都使用的mongo-java-driver实现。
在MongoDB中,一个集合(collection)在概念上就类似我们SQL数据库中的表(Table),这个集合包含了一系列文档(document)。一个DBObject对象表示我们想添加到集合(collection)中的一个文档(document),MongoDB会自动为我们创建的每个文档添加一个id,这个id在我们通过save方法保存文档之后设置到DBObject对象当中,然后我们就可以使用id来查找我们刚才添加的那个文档的信息了,比如用来检验我们的操作是否成功。获取文档id代码示例如下:
DBObject obj = new BasicDBObject(); obj.put("title", getTitle()); obj.put("body", getBody()); DBCollection coll = db.getCollection("note")); coll.save(obj); String idString = obj.get("_id").toString();
接下来,我们看看怎么使用id来查找一个文档。这个id在java语言中,是String类型,但在MongoDB中,它是一个ObjectId的实例,我们在使用id来文档的时候,需要将id通过ObjectId的构造函数转化为一个ObjectId对象,然后执行文档查找操作,具体代码如下:
String idString = "a456fd23ac56d"; DBCollection coll = db.getCollection(getCollectionName()); DBObject searchById = new BasicDBObject("_id", new ObjectId(idString)); DBObject found = coll.findOne(searchById);
原文地址:http://www.zorched.net/2010/06/17/mongodb-and-java-find-an-item-by-id/