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