package com.db;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import org.bson.Document;
import com.mongodb.BasicDBObject;
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;
public class MongoTest {
/**
* 连接数据库,创建数据库连接对象
*/
MongoConnection connection = new MongoConnection();
MongoDatabase mongoDatabase = connection.getConnectionBasis();
/**
* 创建 集合【对应RDBMS 中的数据表】
* com.mongodb.client.MongoDatabase.createCollection("集合名")
*/
public void createCollection() {
mongoDatabase.createCollection("testConllection");
System.out.println("创建集合成功");
}
/**
* 获取 集合【对应RDBMS 中的数据表】
* com.mongodb.client.MongoDatabase.getCollection("集合名")
*/
public MongoCollection<Document> getCollection() {
MongoCollection<Document> collection = mongoDatabase.getCollection("user");
System.out.println("转换到指定集合");
return collection;
}
/**
* 插入 文档【对应RDBMS中的多条数据】
* com.mongodb.client.MongoCollection<Document>.insertMany() 创建文档
* org.bson.Document 参数为key-value的格式 创建文档集合List<Document> 将文档集合插入数据库集合中
* mongoCollection.insertMany(List<Document>)
*/
public void insertListDomcument(MongoCollection<Document> collection) {
Document document1 = new Document();
document1.append("name", "张三");
document1.append("age", 23);
document1.append("address", "北京市");
Document document2 = new Document();
document2.append("name", "李四");
document2.append("age", 22);
document2.append("address", "上海市");
List<Document> list = new ArrayList<Document>();
list.add(document1);
list.add(document2);
collection.insertMany(list);
System.out.println("插入文档成功");
}
/**
* 插入 文档【对应RDBMS中的一条数据】
* com.mongodb.client.MongoCollection<Document>.insertOne() 创建文档
* org.bson.Document 参数为key-value的格式
* 插入单个文档可以用mongoCollection.insertOne(Document)
*/
public void insertOneDomcument(MongoCollection<Document> collection) {
Document t = new Document();
t.append("name", "旺旺");
t.append("age", 26);
t.append("address", "深圳市");
collection.insertOne(t);
System.out.println("插入单条数据成功");
}
/**
* 查询 所有文档【表内 数据】com.mongodb.client.MongoCollection<Document>.find() 查询
* 本条数据的时间节点 _id采用ObjectId格式 ObjectId 是一个12字节 BSON 类型数据,有以下格式: 前4个字节表示时间戳
* 接下来的3个字节是机器标识码 紧接的两个字节由进程id组成(PID) 最后三个字节是随机数。
* 1.获取迭代器FindIterable<Document> 2. 获取游标MongoCursor<Document>
* 3.通过游标遍历检索出的文档集合
*/
public void findAll(MongoCollection<Document> collection) {
FindIterable<Document> findIterable = collection.find();
MongoCursor<Document> mongoCursor = findIterable.iterator();
while (mongoCursor.hasNext()) {
Document document = mongoCursor.next();
System.out.println("MongoDB数据:" + document);
System.out.println("本地时间:"
+ new SimpleDateFormat().format(document.getObjectId("_id").getDate()));
}
}
/**
* 条件查询
* com.mongodb.client.MongoCollection<Document>.find(BasicDBObjectquery)
* BasicDBObject query对象为条件语句,可以给对象put多个条件进行查询
* 1.获取迭代器FindIterable<Document>2. 获取游标MongoCursor<Document>
* 3.通过游标遍历检索出的文档集合
*/
public void findOne(MongoCollection<Document> collection) {
BasicDBObject query = new BasicDBObject();
query.put("name", "张三");
FindIterable<Document> cursor = collection.find(query);
MongoCursor<Document> mongoCursor = cursor.iterator();
try {
while (mongoCursor.hasNext()) {
System.out.println(mongoCursor.next());
}
} finally {
mongoCursor.close();
}
}
/**
* 更新 所有文档【表内 数据】com.mongodb.client.MongoCollection<Document>.updateMany()
*/
public void update(MongoCollection<Document> collection) {
collection
.updateMany(Filters.eq("age", 26), new Document("$set", new Document("age", 100)));
FindIterable<Document> findIterable = collection.find();
MongoCursor<Document> cursor = findIterable.iterator();
while (cursor.hasNext()) {
System.out.println("更新后的MongoDB数据:" + cursor.next());
}
}
/**
* 删除 文档
* com.mongodb.client.MongoCollection<Document>.deleteMany()/deleteOne()
*/
public void delete(MongoCollection<Document> collection) {
// 删除符合条件的 第一个文档
collection.findOneAndDelete(Filters.eq("age", 26));
// 删除符合条件的 所有文档
collection.deleteMany(Filters.gte("age", 20));
FindIterable<Document> findIterable = collection.find();
MongoCursor<Document> cursor = findIterable.iterator();
while (cursor.hasNext()) {
System.out.println("删除后的MongoDB数据:" + cursor.next());
}
}
public static void main(String[] args) {
MongoTest test = new MongoTest();
test.update(test.getCollection());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Java与Mongodb的demo
共13个文件
java:2个
class:2个
jar:2个
需积分: 10 11 下载量 189 浏览量
2017-12-11
15:29:49
上传
评论 1
收藏 1.91MB ZIP 举报
温馨提示
Java对Mongodb的数据操作,包括增删改查各类操作,和它们之间需要用到的jar包
资源推荐
资源详情
资源评论
收起资源包目录
Mongodb.zip (13个子文件)
Mongodb
.settings
org.eclipse.jdt.core.prefs 330B
src
com
db
MongoConnection.java 2KB
MongoTest.java 5KB
.project 1KB
WebRoot
META-INF
MANIFEST.MF 36B
WEB-INF
web.xml 371B
classes
com
db
MongoConnection.class 2KB
MongoTest.class 6KB
lib
mongo-java-driver-3.5.0.jar 1.73MB
mongodb-driver-3.4.2.jar 358KB
index.jsp 834B
.mymetadata 294B
.classpath 531B
.myeclipse
共 13 条
- 1
资源评论
无缺-summer
- 粉丝: 33
- 资源: 32
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功