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是否存在。