package mdb;
import com.mongodb.MongoClient;
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;
import org.bson.Document;
import java.util.ArrayList;
import java.util.List;
public class Mdb {
public static void main(String[] args) {
MongoClient m=new MongoClient("192.168.1.104",27017);//连接服务
MongoDatabase db = m.getDatabase("test");//连接到test数据库
MongoCollection<Document> student = db.getCollection("student");//拿到student集合
//======插入
Document document = new Document();
document.append("name","wangming").append("city","shanghai").append("genner","man").append("job","big data");
List<Document> doc=new ArrayList<Document>();//创建的docment的数组
doc.add(document);//添加到集合中
student.insertMany(doc);//插入多个需要维护一个list数组
student.insertOne(document);//插入单个则只需一个document
//=======更新文档
student.updateMany(Filters.eq("name","wangxiaoming"),new Document("$set",new Document("name","xming")));//匹配name为wangixaoming的字段改为xming
//=======删除文档
student.deleteOne(Filters.eq("name","xming"));//删除符合条件的第一个文档
student.deleteMany(Filters.eq("name","xming"));//删除符合条件的所有文档
//=======按条件查询遍历表
FindIterable<Document> documents = student.find();
for(Document dc:documents){
System.out.println(dc);//拿到所有的文档
}
//=======$and equals lte匹配查找
MongoCursor<Document> st = student.find(Filters.and(Filters.eq("city", "beijing"), Filters.lte("age", 20))).iterator();//先用Filter的和操作 里面写俩个Filter操作 分别是城市等于北京的 年龄小等于20的条件
while (st.hasNext()){
Document docnext = st.next();
if (docnext.containsKey("higher")){//该文档匹配的key 随意一个key就可以
// { "_id" : ObjectId("5caa3ed1d99950e42192d662"), "name" : "xiaoan", "age" : 20, "higher" : 18.1, "city" : "beijing", "sal" : 18890 }
student.updateMany(Filters.eq("_id",docnext.get("_id")),new Document("$inc",new Document("sal",1)));//即匹配id为要搜索条件的id 然后将其工资上涨1
// { "_id" : ObjectId("5caa3ed1d99950e42192d662"), "name" : "xiaoan", "age" : 20, "higher" : 18.1, "city" : "beijing", "sal" : 18891 }
}
}
//=======批量更新multiply(乘)(错误!)
student.updateMany(Filters.exists("sal"),new Document("$mul",new Document("sal",2)));//所有包含sal的字段都乘以2
}
}
mongodb java api增删改查
最新推荐文章于 2023-08-18 19:32:15 发布
本文详细介绍如何使用Java进行MongoDB数据库的基本操作,包括连接数据库、插入、更新、删除及查询文档等核心功能,同时展示了复杂的查询条件设置和批量更新操作。
1万+

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



