MongoDB Java Driver 简单操作

MongoDB Java Driver 简单操作
 
一、Java驱动一致性

 

 MongoDB的Java驱动是线程安全的,对于一般的应用,只要一个Mongo实例即可,Mongo有个内置的连接池(池大小默认为10个)。
 
 对于有大量写和读的环境中,为了确保在一个Session中使用同一个DB时,我们可以用以下方式保证一致性:
 
 DB mdb = mongo.getDB('dbname');
 
 mdb.requestStart();
 //
 // 业务代码
 //
 mdb.requestDone();

 

 DB和DBCollection是绝对线程安全的,它们被缓存起来了,所以在应用中取到的可能是同一个对象。

 

二、保存/查找对象(DBObject)

 

 Java驱动提供了DBObject接口,方便我们保存对象到数据库中。
 
 定义需要保存的对象:
 
 public class Tweet implements DBObject {
  /** ...... */
 }
 
 然后我们可以使用该对象:
 
 Tweet tweet = new Tweet();
 tweet.put("user", userId);
 tweet.put("message", message);
 tweet.put("date", new Date());
 
 collection.insert(tweet);
 
 当从数据库中查询时,结果会自动的转换成DBObject对象,我们可以转换成我们自己的类型:
 
 collection.setObjectClass(Tweet);
 
 Tweet myTweet = (Tweet)collection.findOne();

 

三、创建连接

 

 Mongo m = new Mongo();
 Mongo m = new Mongo("localhost");
 Mongo m = new Mongo("localhost", 27017);
 
 DB db = m.getDB("mydb);
 
 注意:事实上,Mongo实例代表了一个数据库连接池,即使在多线程的环境中,一个Mongo实例对我们来说已经足够了。
 
四、认证(可选的)

 

 boolean auth = db.authenticate("myUserName", "myPasswd");
 
五、取得Collection列表

 

 Set<String> colls = db.getCollectionNames();
 
 for(String s : colls) {
  System.out.prinln(s);
 }

 

六、获取一个Collection

 

 DBCollection coll = db.getCollection("testCollection");
 
 使用DBCollection,我们可以进行插入、查询数据等数据操作。

 

七、插入文档

 

 假设有个JSON文档如下所示:
 
 {
  "name": "MongoDB",
  "type": "database",
  "count": 1,
  "info": {
     x: 203,
     y: 102
    }
 }
 
 注意:上面的JSON文档有个内嵌文档"info"。
 
 我们完全可以利用BasicDBObject来创建一个和上面的JSON一样的文档,并且把它保存在MongoDB中。
 
 DBObject doc = new BasicDBObject();
 
 doc.put("name", "MongoDB");
 doc.put("type", "database");
 doc.put("count", 1);
 
 DBObject info = new BasicDBObject();
 info.put("x", 203);
 info.put("y", 102);
 
 doc.put("info", info);
 
 coll.insert(doc);
 
八、查询第一个文档(findOne())

 

 为了验证在上面我们保存的类似JSON的数据,我们可以用findOne()方法取得数据。
 
 findOne(): 返回一个文档;
 find(): 返回一个游标(DBCursor),其中包含一组对象DBObject;
 
 DBObject doc = coll.findOne();
 System.out.println(doc);
 
 我们将会看到控制台输出:
 { "_id" : "49902cde5162504500b45c2c" , "name" : "MongoDB" , "type" : "database" , "count" : 1 , "info" : { "x" : 203 , "y" : 102} , "_ns" : "testCollection"}
 
九、插入多个文档

 

 为了在后来展示更多的查询方法,我们先插入几个文档,它们的JSON像这样:
 {
  "i": value
 }
 
 使用一个循环插入数据:
 
 for(int i = 0; i < 100; i++) {
  coll.insert(new BasicDBObject().append("i", i));
 }
 
 我们注意到,同一个coll,我们完全可以插入不同风格的数据,这就是MongoDB的重要特性“模式自由”。
 
十、统计文档数

 

 现在我们已经有101份文档在数据库中了,现在统计一下看是否正确。
 
 long count = coll.getCount();
 System.out.println(count);
 
 控制台将会输出:101
 
十一、使用游标取得所有的文档

 

 DBCursor cursor = coll.find();
 
 while(cursor.hasNext()) {
  DBObject object = cursor.next();
  System.out.println(object);
 }
 
十二、查询单个文档

 

 DBObject query = new BasicDBObject();
 
 query.put("i", 71);
 
 cursor = coll.find(query);
 
 while(cur.hasNext()) {
  DBObject object = cursor.next();
  System.out.println(object);
 }
 
 控制台的输出类似如下:
 
 { "_id" : "49903677516250c1008d624e" , "i" : 71 , "_ns" : "testCollection"}
 
十三、查询文档集合

 

 根据查询条件,我们可以通过DBCollection从数据库中取出多个对象,比如查询i>50的文档集合:
 
 query = new BasicDBObject();
 
 query.put("i", new BasicDBObject("$gt", 50)); // i>50
 
 cursor = coll.find(query);
 
 while(cursor.hasNext()) {
  DBObject object = cursor.next();
  System.out.println(object);
 }
 
 比如查询条件为 20<i<=30:
 
 query = new BasicDBObject();
 
 // 20<i<=30
 query.put("i", new BasicDBObject("$gt", 20).append("$lte", 30));
 
 cursor = coll.find(query);
 
 while(cursor.hasNext()) {
  DBObject object = cursor.next();
  System.out.println(object);
 }

 

十四、创建索引

 

 MongoDB支持索引,并且给一个DBCollection添加索引非常简单,你只要指明需要创建索引的字段,然后指明其是升序(1)还是降序(-1)即可,比如在"i"上创建升序索引。
 
 coll.createIndex(new BasicDBObject("i", 1)); // 1代表升序
 
十五、查询索引

 

 我们可以查询到所有的索引:
 
 List<DBObject> list = coll.getIndexInfo();
 
 for(DBObject index : list){
  System.out.println(index);
 }
 
 控制台的输出类似如下所示:
 
 { "name" : "i_1" , "ns" : "mydb.testCollection" , "key" : { "i" : 1} , "_ns" : "system.indexes"}

 


   MongoDB的管理功能
   
一、获取所有的数据库

 

 Mongo m = new Mongo();
 
 for(String s : m.getDatabaseNames()) {
  System.out.println(s);
 }

 

二、删除数据库

 

 m.dropDatabase("my_new_db");
 
 
   MongoDB的Java类型

 

一、对象ID

 

 ObjectId被用作自动生成的唯一ID.
 
 ObjectId id = new ObjectId();
 ObjectId copy = new ObjectId(id);
 
二、正则表达式

 

 Pattern john = Pattern.compile("joh?n", CASE_INSENSITIVE);
 DBObject query = new BasicDBObject("name", john);
 
 // 查询所有 "name" 匹配 /joh?n/i 的文档
 DBCursor cursor = collection.find(query);

 

三、日期和时间

 

 Date now = new Date();
 DBObject time = new BasicDBObject("ts", now);
 
 collection.save(time);
 
四、数据库引用

 

 DBRef可以用来保存数据库引用。
 
 DBRef addressRef = new DBRef(db, "foo.bar", address_id);
 DBObject address = addressRef.fetch();
 
 DBObject person = BasicDBObjectBuilder.start()
  .add("name", "Fred")
  .add("address", addressRef)
  .get();
 collection.save(person);
 
 DBObject fred = collection.findOne();
 DBRef addressObj = (DBRef)fred.get("address");
 addressObj.fetch();
 
五、二进制数据

 

 字节数组(byte[])被当作二进制数据。
 
六、内嵌文档

 

 JSON样式的数据如下:
 {
  "x": {
   "y": 3
  }
 }
 
 则在MongoDB中,Java表示为:
 
 DBObject y = new BasicDBObject("y", 3);
 DBObject x = new BasicDBObject("x", y);
 
七、数组

 

 任何继承自List的对象,在MongoDB中,都被当成是数组。
 
 如果想表示如下JSON数据:
 
 {
  "x": [
   1,
   2,
   {"foo": "bar"},
   4
  ]
 }
 
 则在Java中,应该为:
 
 List<Object> x = new ArrayList<Object>();
 x.add(1);
 x.add(2);
 x.add(new BasicDBObject("foo", "bar"));
 x.add(4);
 
 DBObject doc = new BasicDBObject("x", x);
 System.out.println(doc);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java MongoDB DriverMongoDB 官方提供的 Java 驱动程序,用于连接和操作 MongoDB 数据库。目前最新版本为 4.x。 要下载 Java MongoDB Driver 4.x,可以按照以下步骤进行: 1. 打开 MongoDB 官网的下载页面(https://www.mongodb.com/try/download/drivers/java)。 2. 在页面中找到 Java 驱动程序部分。 3. 点击"Download"按钮,会弹出一个对话框,选择希望下载的版本和文件类型(例如 JAR 或 POM)。 4. 点击"Download"按钮下载驱动程序。 5. 下载完成后,将下载的驱动程序文件添加到你的 Java 项目中。 在使用 Java MongoDB Driver 时,需要注意以下几点: 1. 确保你的项目已经添加了正确的驱动程序依赖。如果使用 Maven 进行项目管理,可以在 pom.xml 文件中添加以下依赖项: ```xml <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-sync</artifactId> <version>4.x.x</version> </dependency> ``` 2. 在代码中使用 MongoDB 驱动程序提供的 API 来连接和操作数据库。例如,可以使用以下代码来连接 MongoDB 数据库: ```java import com.mongodb.client.MongoClients; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoDatabase; public class MongoDBExample { public static void main(String[] args) { MongoClient client = MongoClients.create("mongodb://localhost:27017"); MongoDatabase database = client.getDatabase("mydb"); // 进行数据库操作... client.close(); } } ``` 这样就完成了 Java MongoDB Driver 4.x 的下载和使用。可以根据项目的需求,使用更高级的 API 进行更丰富的 MongoDB 数据库操作。 ### 回答2: Java MongoDB DriverMongoDB 官方提供的 Java 语言的客户端驱动程序,用于与 MongoDB 数据库进行通信和交互。当前最新版本是 4.。 首先,你可以在 Maven 仓库中下载 Java MongoDB Driver 的依赖。你可以在项目的 Maven 配置文件(pom.xml)中添加如下依赖项: ```xml <dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-sync</artifactId> <version>4.4.0</version> </dependency> </dependencies> ``` 或者,你也可以直接在 MongoDB 官方网站的 Java Driver 下载页面上下载最新版本的 Java MongoDB Driver。下载完成后,你可以将下载的 JAR 文件添加到你的项目的类路径下。 另外,你还需要下载 MongoDBJava 连接管理器(Java Connect Manager)JAR 文件,它是 MongoDBJava 驱动的核心组件。你同样可以在 Maven 仓库或 MongoDB 官方网站上找到并下载到相应的版本。 一旦你下载了 Java MongoDB Driver 的 JAR 文件,你就可以将它们添加到你的 Java 项目的类路径中。然后,你可以在代码中导入相关的 MongoDB 类和方法,以便使用 Java MongoDB Driver 来连接和操作 MongoDB 数据库。 总之,要下载 Java MongoDB Driver 4.,你可以通过 Maven 仓库或者在 MongoDB 官方网站找到相关的 JAR 文件。下载完成后,将它们添加到项目类路径中,并在代码中导入相关类和方法,就可以开始使用 Java MongoDB Driver 进行数据库操作了。 ### 回答3: Java MongoDB DriverMongoDB官方提供的Java语言的驱动库,用于连接和操作MongoDB数据库。在进行Java开发时,如果需要使用MongoDB数据库,就需要下载并引入Java MongoDB Driver来实现与数据库的交互。 Java MongoDB Driver的最新版本是4.x系列。下载Java MongoDB Driver 4.x的步骤如下: 1. 打开MongoDB官方网站,进入“Connectors”页面。 2. 在Java的部分找到Java MongoDB Driver的下载链接。 3. 点击下载链接,选择适合你操作系统/开发环境的版本。 4. 下载完成后,解压下载的文件。 在项目中使用Java MongoDB Driver 4.x的步骤如下: 1. 打开你的Java项目,进入项目的构建工具配置文件(如Maven的pom.xml文件)。 2. 在依赖配置中添加MongoDB Driver的引用。 示例(Maven配置): ``` <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-sync</artifactId> <version>4.4.1</version> </dependency> ``` 3. 保存并更新项目的依赖。 完成以上步骤后,你就可以在Java代码中使用Java MongoDB Driver 4.x来连接和操作MongoDB数据库了。根据具体需求,可以使用Driver提供的API进行数据的增删改查等操作。 总结:下载Java MongoDB Driver 4.x可通过MongoDB官方网站获取合适版本的驱动库,然后在项目的构建工具配置文件中添加依赖引用即可。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值