1.新建Project

新建Java Project,并把mongo-java-driver驱动加入到项目bulid path中,如果你使用的是maven增加依赖。

      <dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.10.1</version>
</dependency>

2.连接上MongoDB

//>2.10版本
MongoClient mongo = new MongoClient( "localhost" , 27017 ); //老版本
Mongo mongo = new Mongo("localhost", 27017);

如果需要验证,需要输入用户名和密码

    MongoClient mongoClient = new MongoClient();
DB db = mongoClient.getDB("database name");
boolean auth = db.authenticate("username", "password".toCharArray());

3.MongoDB数据库

得到MongoDB中的数据库,如果数据库名不存在,MongoDB会自动创建

DB db = mongo.getDB("database name");

显示所有的数据库

    List<String> dbs = mongo.getDatabaseNames();
for(String db : dbs){
System.out.println(db);
}

4.MongoDB Collection(MongoDB表)

得到数据库中的表

    DB db = mongo.getDB("testdb");
DBCollection table = db.getCollection("user");

显示数据库中的所有表

    DB db = mongo.getDB("testdb");
Set<String> tables = db.getCollectionNames(); for(String coll : tables){
System.out.println(coll);
}

5.插入、查找、更新、删除操作

插入数据,向Collection(表)中插入一个Document

    DBCollection table = db.getCollection("user");
BasicDBObject document = new BasicDBObject();
document.put("name", "qiyadeng");
document.put("age", 30);
document.put("createdDate", new Date());
table.insert(document);

更新Document中的name="qiyadeng.com"

    DBCollection table = db.getCollection("user");

    BasicDBObject query = new BasicDBObject();
query.put("name", "qiyadeng"); BasicDBObject newDocument = new BasicDBObject();
newDocument.put("name", "qiyadeng.com"); BasicDBObject updateObj = new BasicDBObject();
updateObj.put("$set", newDocument); table.update(query, updateObj);

从Collection中查找name="qiyadeng.com"的Document

    DBCollection table = db.getCollection("user");

    BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("name", "qiyadeng.com"); DBCursor cursor = table.find(searchQuery); while (cursor.hasNext()) {
System.out.println(cursor.next());
}

删除name="qiyadeng"的Document

    DBCollection table = db.getCollection("user");

    BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("name", "qiyadeng.com"); table.remove(searchQuery);

6.完整的例子

package com.qiyadeng.mongodb;

import java.util.Date;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.MongoClient; public class MongoDBSample { public static void main(String[] args) throws Exception{ /**** Connect to MongoDB ****/
//2.10.0后,使用MongoClient
MongoClient mongo = new MongoClient("localhost", 27017); /**** Get database ****/
// if database doesn't exists, MongoDB will create it for you
DB db = mongo.getDB("testdb"); /**** Get collection / table from 'testdb' ****/
// if collection doesn't exists, MongoDB will create it for you
DBCollection table = db.getCollection("user"); /**** Insert ****/
// create a document to store key and value
BasicDBObject document = new BasicDBObject();
document.put("name", "qiyadeng");
document.put("age", 30);
document.put("createdDate", new Date());
table.insert(document); /**** Find and display ****/
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("name", "qiyadeng"); DBCursor cursor = table.find(searchQuery); while (cursor.hasNext()) {
System.out.println(cursor.next());
} /**** Update ****/
// search document where name="qiyadeng" and update it with new values
BasicDBObject query = new BasicDBObject();
query.put("name", "qiyadeng"); BasicDBObject newDocument = new BasicDBObject();
newDocument.put("name", "qiyadeng.com"); BasicDBObject updateObj = new BasicDBObject();
updateObj.put("$set", newDocument); table.update(query, updateObj); /**** Find and display ****/
BasicDBObject searchQuery2
= new BasicDBObject().append("name", "qiyadeng.com"); DBCursor cursor2 = table.find(searchQuery2); while (cursor2.hasNext()) {
System.out.println(cursor2.next());
}
}
}

输出

{ "_id" : { "$oid" : "51444c88874c79654063356b"} , "name" : "qiyadeng" , "age" : 30 , "createdDate" : { "$date" : "2013-03-16T10:42:16.555Z"}}
{ "_id" : { "$oid" : "51444c88874c79654063356b"} , "age" : 30 , "createdDate" : { "$date" : "2013-03-16T10:42:16.555Z"} , "name" : "qiyadeng.com"}

使用mongo验证创建的数据库testdb,collection user是否存在。

转自:http://www.cnblogs.com/qiyadeng/archive/2013/03/19/2970131.html

Java和MongoDB之Hello World的更多相关文章

  1. 【MongoDB for Java】Java操作MongoDB

    上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...

  2. JAVA操作MongoDB数据库

    1. 首先,下载MongoDB对Java支持的驱动包 驱动包下载地址:https://github.com/mongodb/mongo-java-driver/downloads 2.Java操作Mo ...

  3. [转]MongoDB for Java】Java操作MongoDB

    原文地址: MongoDB for Java]Java操作MongoDB 开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开 ...

  4. Java 连接MongoDB

    1.驱动 通过java连接MongoDB需要一个java版的驱动 下载地址:http://mongodb.github.io/mongo-java-driver/ 2.连接MongoDB 通过 com ...

  5. Java操作MongoDB

    上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html 介绍到了在MongoDB的控制台完成MongoDB的数据操作,通 ...

  6. mongDB基本命令和Java操作MongoDB

    上一篇博文<mongoDB安装>我们安装了mongoDB,现在来复习一下它的一些基本命令:mongoDB的bin目录加入到path之后,命令行中输入mongo: 然后我们进入正题 1.查看 ...

  7. Mongodb快速入门之使用Java操作Mongodb

    [IT168 专稿]在上一篇文章中,我们学习了Mongodb的安装和初步使用,在本文中,将学习如何使用Java去编程实现对Mongodb的操作. HelloWorld程序 学习任何程序的第一步,都是编 ...

  8. Mongodb入门并使用java操作Mongodb

    转载请注意出处:http://blog.csdn.net/zcm101 最近在学习NoSql,先从Mongodb入手,把最近学习的总结下. Mongodb下载安装 Mongodb的下载安装就不详细说了 ...

  9. 浅谈如何用Java操作MongoDB

    NoSQL数据库因其可扩展性使其变得越来越流行,利用NoSQL数据库可以给你带来更多的好处,MongoDB是一个用C++编写的可度可扩展性的开源NoSQL数据库.本文主要讲述如何使用Java操作Mon ...

  10. Java实现mongodb原生增删改查语句

    Java实现mongodb原生增删改查语句 2018-03-16 自动化测试时,需校验数据库数据,为了快速自动化,在代码中用原生增删改查语句操作mongodb 结构 代码 0 pom.xml < ...

随机推荐

  1. 关闭oom killer

    最近有位 VPS 客户抱怨 MySQL 无缘无故挂掉,还有位客户抱怨 VPS 经常死机,登陆到终端看了一下,都是常见的 Out of memory 问题.这通常是因为某时刻应用程序大量请求内存导致系统 ...

  2. jupyterhub

    pkill jupyterhub #激活python环境 pyenv activate jupyterhub #启动jupyterhub /fly/start_jupyterhub.sh cd ~/r ...

  3. Asp.net动态调用WebService

    Public Class WebServiceHelper #Region "InvokeWebService" '动态调用web服务 Public Shared Function ...

  4. Spring AOP简介

    AOP简述 AOP的概念早在上个世纪九十年代初就已经出现了,当时的研究人员通过对面向对象思想局限性的分析研究出了一种新的编程思想来帮助开发者减少代码重复提高开发效率,那就是AOP,Aspect-Ori ...

  5. Heritrix源码分析(十四) 如何让Heritrix不间断的抓取(转)

    欢迎加入Heritrix群(QQ):109148319,10447185 , Lucene/Solr群(QQ) :  118972724 本博客已迁移到本人独立博客: http://www.yun5u ...

  6. 剑指offer—第二章算法之二分查找(旋转数组的最小值)

    旋转数组的最小数字 题目:把一个数组最开始的若干元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如:数组{3,4,5,1,2}为{1,2,3,4, ...

  7. 查看Linux下端口占用情况的命令

    在使用Linux系统的过程中,有时候会遇到端口被占用而导致服务无法启动的情况.比如HTTP使用80端口,但当启动Apache时,却发现此端口正在使用. 这种情况大多数是由于软件冲突.或者默认端口设置不 ...

  8. 使用Spring 3的@value简化配置文件的读取

    Spring 3支持@value注解的方式获取properties文件中的配置值,大简化了读取配置文件的代码. 1.在applicationContext.xml文件中配置properties文件 & ...

  9. php 正则中的"i,m,s,x,e"分别表示什么

    i如果设定此修正符,模式中的字符将同时匹配大小写字母.m当设定了此修正符,“行起始”和“行结束”除了匹配整个字符串开头和结束外,还分别匹配其中的换行符的之后和之前.s如果设定了此修正符,模式中的圆点元 ...

  10. Android SDK更新 Connection to http://dl-ssl.google.com refused 解决方法

    问题描述 使用SDK Manager更新时出现问题Failed to fetch URL https://dl-ssl.google.com/android/repository/repository ...