MongoDB

作者: 叫我小码哥 | 来源:发表于2020-03-01 21:58 被阅读0次

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);
    }

相关文章

网友评论

      本文标题:MongoDB

      本文链接:https://www.haomeiwen.com/subject/cngxkhtx.html