`
wode66
  • 浏览: 738223 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

初识MongoDB(四)--MongoDB客户端Java方式访问

阅读更多

在MongoDB的官网已经很详细的介绍了各种客户端的使用,其中也包括java的,在此,仅对几个比较疑惑的地方做个标注:

(1)、如何向db中添加collection?

如果在api文档中找不到答案,那就去看源代码吧。可以看到com.mongodb.DB类中是如何定义getCollection方法的。其中DB类是抽象类,且doGetCollection(name)方法也是抽象的。

/**
     * Gets a collection with a given name.
     * If the collection does not exist, a new collection is created.
     * @param name the name of the collection to return
     * @return the collection
     */
    public final DBCollection getCollection( String name ){
        DBCollection c = doGetCollection( name );
        return c;
    }

 

可见,当调用db.getCollection( String name )方法时,如果以name命名的collection不存在,则自动创建一个,并返回。

 

(2)、BasicDBObject的append和put两个方法有何区别?

首先看一下BasicDBObject的继承结构,com.mongodb.BasicDBObject --》com.mongodb.DBObject(接口)  --》org.bson.BSONObject(接口)。

其中,put( String key , Object v )方法是BSONObject接口定义的,具体定义如下:

public interface BSONObject {
    /**
     * Sets a name/value pair in this object.
     * @param key Name to set
     * @param v Corresponding value
     * @return <tt>v</tt>
     */
    public Object put( String key , Object v );
}

  append( String key , Object val )方法的定义是在BasicDBObject类中,具体定义如下:

public class BasicDBObject extends BasicBSONObject implements DBObject {
	@Override
    public BasicDBObject append( String key , Object val ){
        put( key , val );
        return this;
    }
}

  可以看出,put方法返回的是value值,而append方法返回的是对象本身,这样就可以向使用链式的方式添加数据,如:new BasicDBObject().append("username","zhang").append("password","111111");

 

参考资料:

MongDB的java客户端使用:http://www.mongodb.org/display/DOCS/Java+Tutorial

MongDB源代码下载地址:https://github.com/mongodb/mongo-java-driver(点击“switch tag”选择相应版本下载)

MongDB集成后的jar下载地址:https://github.com/mongodb/mongo-java-driver/downloads

MongDB的java客户端API解释:http://api.mongodb.org/java/

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics