简单学习Java+MongoDB

MongoDB一些概念

下面以MongoDB和MySql的对比来说明

MySQL MongoDB
database(数据库) db(数据库)
table(表) collection(集合)
row(行记录) document(文档)
column(列) field(字段)
primary key(指定主键) "_id" : ObjectId("******")  自动生成内置主键

Mysql的数据形式如下

同样的数据在MongoDB下类似于JSON键值对,叫BSON,如下

MongoDB的CRUD

windows下安装成功后,使用mongod命令启动服务,使用mongo命令默认连接到test库

1,创建集合

创建user集合:db.createCollection("user")   //不需要定义字段
2,插入
插入name=wangxu,age=27的记录:db.user.insert({"name":"wangxu","age":27})
3,查询
查询全部:db.user.find()
查询name=wangxu的记录:db.user.find({"name":"wangxu"})
4,更新
将name=wangxu的记录age更新成30:db.user.update({name:"wangxu"},{"$set":{"age":30}})
5,删除
删除name=wangxu的记录:db.user.remove({"name":"wangxu"})
删除全部:db.user.remove()
6,删除集合
删除user集合: db.user.drop()

Java调用MongoDB

引入MongoDB的Java驱动包后,测试代码如下:

package com.wx.test;
import java.util.ArrayList;
import java.util.List;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
/**
 * 测试mongodb 测试点:增加,查询,更新,删除
 *
 * @author wangxu
 * @date 2016-3-27
 */
public class TestMongoDB {
 public static void main(String[] args) {
 // 建立连接,MongoDB默认是没有用户名及密码
 MongoClient mongoClient = new MongoClient("localhost", 27017);
 // 获取test库
 MongoDatabase db = mongoClient.getDatabase("test");
 // 创建集合
 db.createCollection("user");
 // 获取集合
 MongoCollection collection = db.getCollection("user");
 // 插入文档(支持多条)
 Document document = new Document("name", "wangxu").append("age", "27");
 Document document2 = new Document("name", "wangxu_java").append("age",
  "27");
 List<Document> documents = new ArrayList<>();
 documents.add(document);
 documents.add(document2);
 collection.insertMany(documents);
 // 更新wangxu的age为30
 collection.updateMany(Filters.eq("name", "wangxu"), new Document(
  "$set", new Document("age", 30)));
 // 查询文档
 FindIterable<Document> findIterable = collection.find();
 MongoCursor<Document> mongoCursor = findIterable.iterator();
 // 遍历游标
 while (mongoCursor.hasNext()) {
  Document doc = mongoCursor.next();
  System.out.println("name=" + doc.get("name"));
 }
 // 删除wangxu_java
 collection.deleteMany(Filters.eq("name", "wangxu_java"));
 }
}

关于Java驱动包的一个疑问

MongoClient mongoClient = new MongoClient("域不存在", 27017); //建立连接

当我保存上面的代码时,发现不需要处理异常,开始我以为异常被设计成了“非检查异常”,运行时会抛出来,最后测试发现根本不会抛任何异常,后续的CRUD操作时会抛异常,但几乎都是非检查异常,个人感觉这种设计是不是有点不符合Java的异常分类机制?

(0)

相关推荐

  • java操作mongodb时,对象bean和DBObject相互转换的方法(推荐)

    如下所示: package com.iqbon.spider.util; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.util.Date; import org.apache.commons.beanutils.BeanUtils; import com.mongodb.BasicDBObject; import com.mongodb.DBObje

  • Mongodb3.0.5 副本集搭建及spring和java连接副本集配置详细介绍

    Mongodb3.0.5 副本集搭建及spring和java连接副本集配置详细介绍 一.基本环境: mongdb3.0.5数据库 spring-data-MongoDB-1.7.2.jar mongo-Java-driver-3.0.2.jar Linux-redhat6.3 tomcat7 二.搭建mongodb副本集: 1.  分别在三台linux系统机上安装mongodb,(为避免和机器上原有的mongodb端口冲突,这里设为57017): 192.168.0.160 192.168.0.

  • Java操作MongoDB模糊查询和分页查询

    本文实例为大家分享了Java操作MongoDB模糊查询和分页查询,供大家参考,具体内容如下 模糊查询条件: 1.完全匹配 Pattern pattern = Pattern.compile("^name$", Pattern.CASE_INSENSITIVE); 2.右匹配 Pattern pattern = Pattern.compile("^.*name$", Pattern.CASE_INSENSITIVE); 3.左匹配 Pattern pattern =

  • Java操作Mongodb数据库实现数据的增删查改功能示例

    本文实例讲述了Java操作Mongodb数据库实现数据的增删查改功能.分享给大家供大家参考,具体如下: 首先,我们在windows下安装mongodb数据库,安装教程可查看前面一篇文章:http://www.jb51.net/article/85605.htm 代码如下: package io.mogo; import java.util.Map; import org.apache.commons.lang3.StringUtils; import com.mongodb.BasicDBObj

  • java操作mongodb基础(查询 排序 输出list)

    复制代码 代码如下: package com.infomorrow.webroot; import java.util.List; import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;import com.mongodb.DBObject;import com.mongodb.MongoClient; public cl

  • java操作mongodb实现CURD功能实例

    先下载相应的驱动:官网上下载:http://central.maven.org/maven2/org/mongodb/mongo-java-driver/本文使用mongo-2.10.1.jar版本: 下面有详细代码的,每个方法可以单独执行.其中为了方便运行,每个方法中都重新链接数据库,而没有再提出来,因为在此的目的是为了认识mongodb而已. 复制代码 代码如下: package com.mongo.dao;import com.mongodb.BasicDBObject;import co

  • Java操作MongoDB数据库示例分享

    MongoDB是一个文档型数据库,是NOSQL家族中最重要的成员之一,以下代码封装了MongoDB的基本操作. MongoDBConfig.java package com.posoftframework.mongodb; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Enumeration; import java.util.HashMap; i

  • MongoDB支持的java数据类型和测试例子

    mongodb的java数据类型有: Object Ids 自动IDRegular Expressions 正则表达式搜索记录Dates/Times 时间Database References 数据基础结构Binary Data 二进制流Timestamp Data 时间标记戳Code Data 代码数据Embedded Documents 嵌入式文档Arrays 数组类型 详细参考原来英文 http://docs.mongodb.org/ecosystem/drivers/java-types

  • Java连接MongoDB进行增删改查的操作

    Java连接MongoDB进行增删改查的操作 1.创建数据库的连接,进行增删改查 (分别为接口和实现类) package com.dao; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mo

  • java实现mongodb的数据库连接池

    MongoDB是介于关系数据库和非关系数据库之间的一种产品,文件的存储格式为BSON(一种JSON的扩展),这里就主要介绍Java通过使用mongo-2.7.3.jar包实现mongodb连接池,具体的java代码实现如下: 数据库连接池配置参数: /** *@Description: mongo连接池配置文件 */ package cn.lulei.mongo.pool; public class MongoConfig { private static String userName;//用

  • java查询mongodb中的objectid示例

    找了很久查询objectid的方法都是错的,用mongovue能查询出来,但就是用java不知道怎么查询 1.mongovue里的查询方式: 复制代码 代码如下: {"_id" : ObjectId("5326bfc0e6f780b21635248f")} 2.纯mongodb里的查询方式: 复制代码 代码如下: db.collect.find({ "_id" : ObjectId("5326bfc0e6f780b21635248f&q

随机推荐