Java实现MongoDB的简单增删改查
现有一个mongodb的测试表格,内容如下:

根据该表做一个简单的增删改查,具体实现代码如下:
import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import com.mongodb.client.model.Filters;
import com.mongodb.client.result.UpdateResult;
import org.bson.Document;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Filter;
public class MongoTest {
public static void main(String[] args) {
String mongohost="192.168.146.222";
int mongoPort=27017;
MongoClient mongoClient = new MongoClient(mongohost, mongoPort);
MongoDatabase db = mongoClient.getDatabase("test");
System.out.println(db);
// auth 针对mongodb存在用户名和密码验证的情况下,用下列方法进行访问
// ServerAddress serverAddress = new ServerAddress("192.168.146.222", 27017);
// ArrayList<ServerAddress> addrs = new ArrayList<>();
// addrs.add(serverAddress);
//
// MongoCredential scramSha1Credential = MongoCredential.createScramSha1Credential("kgcuser", "kgcdsj", "123456".toCharArray());
// ArrayList<MongoCredential> credentials = new ArrayList<>();
// credentials.add(scramSha1Credential);
// MongoClient mongoClient1 = new MongoClient(addrs, credentials);
// MongoDatabase db = mongoClient1.getDatabase("kgcdsj");
//查看库中的表名 相当于show collections
// MongoIterable<String> tables = db.listCollectionNames();
// for (String table : tables) {
// System.out.println(table);
// }
//删库
// db.drop();
//删表
// db.getCollection("students").drop();
//创建表
// db.createCollection();
HashMap<String, Object> map = new HashMap<>();
map.put("_id","1");
map.put("title","aa");
map.put("content","good");
map.put("readNum",26);
Document document = new Document(map);
// db.getCollection("students").insertOne(document);
// System.out.println("插入一条数据");
//插入多条数据
// Document stu1 = new Document();
// stu1.append("_id","1").append("title","aa")
// .append("content","good").append("readNum",21)
// .append("name","a1").append("userid","0001")
// .append("nick","gree");
// Document stu2 = new Document();
// stu2.append("_id","2").append("title","bb")
// .append("content","hi").append("readNum",28)
// .append("name","b1").append("userid","0002")
// .append("nick","ant");
// Document stu3 = new Document();
// stu3.append("_id","3").append("title","cc")
// .append("content","ok").append("readNum",27)
// .append("name","c1").append("userid","0003")
// .append("nick","plan");
// Document stu4 = new Document();
// stu4.append("_id","4").append("title","dd")
// .append("content","no").append("readNum",29)
// .append("name","a1").append("userid","0001")
// .append("nick","gree");
// Document stu5 = new Document();
// stu5.append("_id","5").append("title","ee")
// .append("content","yes").append("readNum",22)
// .append("name","e1").append("userid","0004")
// .append("nick","dog");
//
// List<Document> stus = new ArrayList<>();
// stus.add(stu1);
// stus.add(stu2);
// stus.add(stu3);
// stus.add(stu4);
// stus.add(stu5);
//
// db.getCollection("students").insertMany(stus);
//查询符合条件的数据
// FindIterable<Document> documents = db.getCollection("students").find(Filters.eq("name", "a1"));
// for (Document doc : documents) {
// System.out.println(doc);
// }
//查询指定列数据
// BasicDBObject basicDBObject = new BasicDBObject();
// basicDBObject.append("title",1);
// basicDBObject.append("_id",0);
// FindIterable<Document> students = db.getCollection("students").find().projection(basicDBObject);
// for (Document student : students) {
// System.out.println(student);
// }
//// 删除指定主键
//db.getCollection("students").deleteOne(Filters.eq("_id",1));
// 删除指定列内容为a1
//db.getCollection("students").deleteMany(Filters.eq("name","a1"));
// 查询前两条
// FindIterable<Document> limit = db.getCollection("students").find().limit(2);
// for (Document document : limit) {
// System.out.println(document);
// }
// 跨越两条,查询第三四条数据
// FindIterable<Document> skip = db.getCollection("students").find().limit(2).skip(2);
// for (Document document : skip) {
// System.out.println(document);
// }
//排序 按readNum升序或降序
// BasicDBObject basicDBObject = new BasicDBObject();
// basicDBObject.append("readNum",1); // 1 为升序, -1 为降序
// FindIterable<Document> students = db.getCollection("students").find().sort(basicDBObject);
// for (Document student : students) {
// System.out.println(student);
// }
//查询 阅读量排名前三 作者名字
// BasicDBObject basicDBObject1 = new BasicDBObject();
// BasicDBObject basicDBObject2 = new BasicDBObject();
// basicDBObject1.append("name",1);
// basicDBObject1.append("readNum",1);
// basicDBObject2.append("readNum",-1);
// FindIterable<Document> students = db.getCollection("students")
// .find().projection(basicDBObject1).sort(basicDBObject2).limit(3);
// for (Document student : students) {
// System.out.println(student);
// }
//阅读量大于25的信息
// FindIterable<Document> documents = db.getCollection("students").find(Filters.gt("readNum", 25));
// for (Document document1 : documents) {
// System.out.println(document1);
// }
// 阅读量在25 到 30间的信息
// FindIterable<Document> documents = db.getCollection("students")
// .find(Filters.and(Filters.gt("readNum", 25), Filters.lt("readNum", 30)));
// for (Document dt : documents) {
// System.out.println(dt);
// }
//userid为0001,0002的信息
// FindIterable<Document> documents = db.getCollection("students").find(Filters.in("userid", "0001", "0002"));
// for (Document document1 : documents) {
// System.out.println(document1);
// }
//修改一条
// Document document1 = new Document();
// document1.append("name","aa");
// db.getCollection("students").updateOne(Filters.eq("_id", 1), document1);
//修改多条
// Document document1 = new Document();
// document1.append("nick","lilei");
// db.getCollection("students").updateMany(Filters.eq("nick","gree"),document1);
}
}
本文展示了如何使用Java实现MongoDB的基本操作,包括连接数据库、创建表、插入数据、查询数据、删除数据以及更新数据。通过示例代码详细解释了各种操作的实现步骤,涵盖了增删改查的全部功能。
922

被折叠的 条评论
为什么被折叠?



