当前位置:嗨网首页>书籍在线阅读

07-理解Java对象BasicDBObject和DBObject

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

10.1.5 理解Java对象BasicDBObject和DBObject

使用Java MongoDB驱动程序连接到MongoDB 明白Java MongoDB驱动程序中的对象后,便可以开始在Java应用程序中实现MongoDB了。本节将引导您在Java应用程序中逐步实现MongoDB。 请执行如下步骤,使用Java MongoDB驱动程序创建第一个Java MongoDB应用程序。 1.如果还没有安装Java JDK,请访问http://docs.oracle.com/javase/7/docs/webnotes/ install/,按说明下载并安装用于您的开发平台的Java JDK。 2.确保将/bin添加到了系统路径中,并能够在控制台提示符下执行命令javac和java。 3.从下面的网址下载Java MongoDB驱动程序,并将其存储在本书使用的示例代码文件夹code:http://central.maven.org/ maven2/org/mongodb/mongo-java-driver/2.11.3/mongo- java-driver-2.11.3.jar。 4.将第3步下载的JAR文件的存储位置添加到环境变量CLASSPATH。 5.确保启动了MongoDB服务器。 6.再次运行脚本文件code/hour05/generate_words.js以重置数据库words。 7.在文件夹code/hour10中新建一个文件,并将其命名为JavaConnect.java。 8.在这个文件中输入程序清单10.1所示的代码。这些代码创建MongoClient、DB和DBCollection对象,并检索文档。 9.将这个文件存盘。 10.打开一个控制台窗口,并切换到目录code/hour10。 11.执行下面的命令来编译这个新建的Java文件: 12.执行下面的命令来运行这个连接到MongoDB的Java应用程序。程序清单10.2 显示了这个应用程序的输出。 程序清单10.1 JavaConnect.java:在Java应用程序中连接到MongoDB数据库 程序清单10.2 JavaConnect.java-output:在Java应用程序中连接到MongoDB数据库的输出

正如您在本书前面介绍MongoDB shell的章节中看到的,大多数数据库、集合和游标操作都将对象作为参数。这些对象定义了查询、排序、聚合以及其他运算符。文档也是以对象的方式从数据库返回的。

在MongoDB shell中,这些对象是JavaScript对象,但在Java中,表示文档和请求参数的对象都是特殊对象。服务器返回的文档是用DBObject对象表示的,这种对象提供了获取和设置文档中字段的功能。对于用作请求参数的对象,是用BasicDBObject表示的。

BasicDBObject是使用下面的构造函数创建的,其中key为JavaScript属性的名称,而value为JavaScript属性的值:

BasicDBObject(key, value)

要给BasicDBObject对象添加属性,可使用方法append()。

例如,假设您要创建一个查询对象,用于查找第一个字母为a且长度超过6的单词。在MongoDB shell中,可使用如下代码:

find({"first":"a", "size": {"$gt": 6}});

而在Java中,必须使用如下语法创建一个将传递给方法find()的BasicDBObject对象:

BasicDBObject query = new BasicDBObject("first", "a");
query.append("size", new BasicDBObject("$gt", 6));

使用这种方式,可创建需要传递给MongoDB数据库请求的对象。有关执行查询、更新、聚合等需要的对象的结构,请参阅介绍MongoDB shell的第5~9章。

DBObject提供了如下方法,可用于获取和设置服务器请求返回的文档的属性。

  • get(fieldName):返回文档中指定字段的值。
  • put(fieldName, value):设置文档中指定字段的值。
  • putAll(map):将一个Java对象Map作为参数,并根据其中指定的键/值对设置文档的字段。
  • toMap():以Map对象的方式返回文档中所有的字段。

▼ Try It Yourself

javac JavaConnect.java
java JavaConnect
01 import com.mongodb.MongoClient;
02 import com.mongodb.WriteConcern;
03 import com.mongodb.DB;
04 import com.mongodb.DBCollection;
05 public class JavaConnect {
06    public static void main(String[] args) {
07       try {
08          MongoClient mongoClient = new MongoClient("localhost", 27017);
09          mongoClient.setWriteConcern(WriteConcern.JOURNAL_SAFE);
10          DB db = mongoClient.getDB("words");
11          DBCollection collection = db.getCollection("word_stats");
12          System.out.println("Number of Documents: " +
13          new Long(collection.count()).toString());
14       } catch (Exception e) {
15         System.out.println(e);
16       }
17    }
18 }
Number of Documents: 2673