public class MongoTest {
private MongoClient client = null;
private MongoCollection<Document> collection = null;
//测试连接数据库
@Before
public void connect() {
//mongo地址
String uri = "mongodb://127.0.0.1:27017";
//获取到mongo 客户端
client = MongoClients.create(uri);
//根据数据库名称 链接到数据库
MongoDatabase database = client.getDatabase("bigdataoss");
//通过数据库 找到数据库下的集合(即表)
collection = database.getCollection("aaa");
System.out.println("链接Mongo成功");
}
//条件查询
@Test
public void findAllCollection() {
//mongo地址
Mongo mongo = new Mongo("localhost", 27017);
String uri = "mongodb://127.0.0.1:27017";
//获取到mongo 客户端
client = MongoClients.create(uri);
//根据数据库名称 链接到数据库
//MongoDatabase database = client.getDatabase("bigdataoss");
DB db = mongo.getDB("whh");
//查询所有的聚集集合
for (String name : db.getCollectionNames()) {
System.out.println(name);
}
}
//获取表下的所有数据
@Test
public void findAll() {
//通过集合,获得表下的所有数据
FindIterable<Document> documents = collection.find();
//通过迭代器 遍历文档
MongoCursor<Document> iterator = documents.iterator();
while (iterator.hasNext()) {
Document document = iterator.next();
System.out.println(document);
}
}
//向表中插入数据
@Test
public void insertOne() {
//可以看一下Document对象 实际是个LinkedMap
Document doc = new Document();
doc.put("_id", "2");
doc.put("name", "zhangsan");
doc.put("salary", "1000");
collection.insertOne(doc);
System.out.println("插入一条数据成功");
}
//修改数据
@Test
public void update() {
//根据条件选择修改的数据
Bson filter = Filters.eq("userId", "004");
Bson updates = Updates.combine(
Updates.set("content", "dsadsa"),
Updates.set("thumbUp", "fsdafaksdfb"),
Updates.currentTimestamp("lastUpdated"));
//ps:updateOne(匹配到多条数据,也只修改一条数据)
//updateMany(匹配到多条数据,那么所有数据都会被更新)
UpdateResult updateResult = collection.updateMany(filter, updates);
System.out.println(updateResult.getModifiedCount() + "条数据更新成功");
}
//删除数据
@Test
public void deleteDocument() {
//构造要删除的数据的条件
Bson filter = Filters.eq("_id", "2");
DeleteResult deleteResult = collection.deleteOne(filter);
System.out.println(deleteResult.getDeletedCount() + "条数据被删除");
}
//多条件查询,并限制返回的字段
@Test
public void findByCondition() {
//选择需要返回的字段
Bson fields = Projections.fields(
Projections.include("plantResourceId", "characterNameList"),
Projections.excludeId()
);
//查询条件
Bson filter_one = Filters.eq("plantResourceId",1);
List<Bson> filters = new ArrayList<>();
filters.add(filter_one);
Bson filter = Filters.and(filters);
//顺便使用一下count函数
long count = collection.countDocuments(filter);
System.out.println(count + "条数据被匹配到");
MongoCursor<Document> cursor = collection.find(filter)
.projection(fields)
.sort(Sorts.descending("thumbUp"))
.iterator();
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
cursor.close();
}
//关闭Mongo连接,释放资源
@After
public void close() {
client.close();
System.out.println("Mongo连接已释放");
}
}
java实现MongoDB的增删改查
最新推荐文章于 2024-05-11 21:29:18 发布