MongoDB简介
MongoDB 是一个基于分布式文件存储的数据库。
MongoDB存储模式
数据库存储集合,集合存储文本。数据库和集合都不需要手动创建例如:直接使用use test
如果test数据库不存在,可以直接进入test集合。
MongoDB基本指令
数据库操作指令
show dbs
查看所有数据库
use test
进入test数据库
db
可以查看当前的数据库
db.dropDatabses()
删除数据库
集合操作指令
show collections
可以查看当前数据库的集合
db.student.drop()
清空集合集合
文本操作指令
文本插入的3种方式
1.db.collection.insert(doc) 向集合中添加一条或者多个文本。
db.students.insert({stuName:"zhangsan",stuId:2});
向集合中添加一个文本db.students.insert([{"stuName":"lisi","stuId":3},{"stuName":"zhaowu","stuId":4}])
向集合中添加多个文本。
2.db.collection.insertOne()向文本插入一条文本
db.collection.insertOne({~~~~~~})
3.db.collection.insertMany()向文本中插入多条文本
db.collection.insertMany([{~~~~~~},{~~~~~~}])
文本查询
1.db.collection.find() 查询当前集合的所有文本。(返回一个数组)
db.students.find()
2.db.collection.find({字段名:值}) 根据文本条件查询文本。
db.students.find({_id:ObjectId("5e5b4be5e09a97e997e4a722")})
3.db.collection.find().count()返回当前集合文档的个数。
db.students.find().count()
4.db.collection.findOne({字段名:值}) 根据文本符合条件的第一个文本。(返回一个对象)
db.students.findOne({stuName:"zhangsan"})
5.db.collection.find({},{字段名:1})只查询某个字段
db.students.find({},{stuName:1})
文本修改
1.db.collection.update(查询条件,新对象) 全部替换
db.students.update({stuId:1},{stuName:"zhangsan",stuId:2})
2.db.collection.update(查询条件,{$set:{字段名:值}}) 只替换某个字段
db.students.update({_id:ObjectId("5e5b4be5e09a97e997e4a722")},{$set:{stuName:"zhangsan2"}})
3.db.collection.update(查询条件,{$unset:{字段名:值}}) 删除文本的制定字段
db.students.update({_id:ObjectId("5e5b4be5e09a97e997e4a722")},{$unset:{stuName:"zhangsan2"}})
4.db.collection.updateOne() 只修该第一条数据
db.students.updateOne({stuName:"zhangsan"},{$set:{stuName:"zhangsan2"}})
5.db.collection.updateMany() 修改多条记录
db.students.updateMany({stuName:"zhangsan"},{$set:{stuName:"zhangsan2"}})
文本删除
1.db.collection.remove({~~~:"~~"}) 删除多行记录
db.students.remove({stuName:"zhangsan"})
db.students.remove({})
表示删除所有
db.students.remove({stuName:"zhangsan"},true)
表示只删除name为zhangsan的一行
2.db.collection.deleteOne({~~~:"~~"}) 删除一行记录
db.students.deleteOne({stuName:"zhangsan"})
3.db.collection.deleteMany([{~~~~~},{~~~~~}]) 删除多行记录
db.students.deleteMany({stuName:"zhangsan"},{$set:{stuName:"zhangsan2"}})
文本排序
1.db.collection.find({}).sort({~~~:"~~"}) 制定某个属性排序
db.students.find({}).sort({stuId:1})
升序
db.students.find({}).sort({stuId:-1})
降序
db.students.find({}).sort({stuId:1,stuNum:2})
当stuId相等时则进行stuNum进行排序
Java链接MongoDB
依赖
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.0.4</version>
</dependency>
Java代码
链接mongodb 并且选择指定链接的数据库
//链接mongodb 并且选择指定链接的数据库
public MongoDatabase initDatabase(String dbsName){
//连接到 mongodb 服务
MongoClient mongoClient = new MongoClient("localhost", 27017);
//连接到数据库
MongoDatabase mongoDatabase = mongoClient.getDatabase(dbsName);
//返回连接数据库对象
return mongoDatabase;
}
初始化集合选择要连接的集合
//初始化集合选择要连接的集合
public MongoCollection<Document> initCollection(MongoDatabase mongoDatabase,String documentName){
MongoCollection<Document> collection = mongoDatabase.getCollection(documentName);
return collection;
}
初始化文本对象
//初始化文本对象
public Document initDocument(){
Document teacher = new Document("teaName","Tom").
append("teaId",1).
append("hobby","shopping").
append("teaNum","666");
return teacher;
}
向指定的文本中插入teacher对象
//向指定的文本中插入teacher对象
public void insertTeacher(){
MongoDatabase mongoDbs = initDatabase("test");
MongoCollection<Document> teacherCollection = initCollection(mongoDbs,"teacher");
Document document = initDocument();
teacherCollection.insertOne(document);
}
查询所有的teacher文本
public void findAllTacher(){
MongoDatabase mongoDbs = initDatabase("test");
MongoCollection<Document> teacherCollection = initCollection(mongoDbs,"teacher");
FindIterable findIterable = teacherCollection.find();
MongoCursor cursor = findIterable.iterator();
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
}
修改制定的文本
public void updateOneTacher(){
MongoDatabase mongoDbs = initDatabase("test");
MongoCollection<Document> teacherCollection = initCollection(mongoDbs,"teacher");
Bson filter = Filters.eq("teaName", "Tom");
Document newDocument = new Document("$set", new Document("teaNum", 123));
teacherCollection.updateOne(filter,newDocument);
}
删除制定的teacher
public void deleteOneTacher(){
MongoDatabase mongoDbs = initDatabase("test");
MongoCollection<Document> teacherCollection = initCollection(mongoDbs,"teacher");
Bson filter = Filters.eq("teaName", "Tom");
teacherCollection.deleteOne(filter);
}
网友评论