zoukankan      html  css  js  c++  java
  • MongoDB基本操作

    1、创建数据库

      格式:usr database_name 

      如果数据库存在创建数据库,否则切换到指定数据库

    > use mydb
    switched to db mydb
    >

    2、查看数据库

      查看数据库列表:

        格式:show dbs

        注意:如果是刚创建的新数据库并不会出现在数据库列表中,要显示它需要插入数据。

        

      查看当前使用数据库:

        格式: db 

    >db
    mydb
    >

      注意

        1、在MongoDB中默认数据库为test,如果你没有创建新的数据库,集合会放在test数据库中。

        2、在MongoDB中,集合只有插入内容后才会创建,也就是说创建集合后需要插入一个文档,集合才会被创建。

    三、删除数据库

      格式:db.dropDatabase()

      

      再查看下数据库是否被删除,使用show dbs;

      

    四、创建集合

      格式:db.createCollection(name, options)

      参数说明:name 要创建的集合名称,options可选参数,指定有关内存大小及索引选项

      

      查看已有的集合使用:show collections

      

      在MongoDB中,插入一些文档时,如果集合不存在,它会自动帮你创建

      

    五、删除集合:

      格式:db.COLLECTIONS_NAME.drop()

      成功删除返回true,否则返回false

      

    六、插入文档

      格式:db.COLLECIONS_NAME.insert(document)

         db.COLLECIONS_NAME.save(document)

         两个格式区别:如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。

      在collection1中插入数据:

      

      成功插入数据后,使用db.COLLECIONS_NAME.find()查看指定集合数据。其中的"_id"是系统自动生成的

      也可以把数据定义成一个变量,插入集合

     

      首先定义变量document,然后把document当做变量插入collection2

      插入多条数据:

      格式:db.COLLECTION_NAME.insert([{文档1},{文档2}...])

      (db.collection1.find()后面不要管,shell 的一个bug)

    七、更新文档

      格式:

        db.COLLECTION_NAME.update(

          <query>,

          <update>,

          {

            upsert:<boolean>,

            multi:<boolean>,

            writeConcern:<document>

          }

        )

      参数说明:

      • query : update的查询条件,类似sql update查询内where后面的。
      • update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
      • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
      • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
      • writeConcern :可选,抛出异常的级别。

        把"_id"为 ObjectId("5b8f21288eca67517610e01b") 对应的name的值改为"嘤嘤嘤"

       示例一:

        更新满足条件的第一条数据:

          db.collection1.update({"age":{$lt:21}},{$set:{"age":"21"}});

          在collection1更新 将age小于21岁的age设置为21

      示例二:

        更新满足条件的全部数据:

        db.collection1.update({"age":{$lt:21}},{$set:{"age":21}},false,true);

        末尾的false是upsert 的参数,true是multi 的参数。

      示例三:

        添加第一条数据:

        db.collection1.update({"age":{$gt:23}},{$set:{"age":23}},true,false);

        在collection1中寻找有没有满足 年龄大于23的,没有找到便添加{"age":23}这个数据,找到则把找到的第一条数据设置成23.

    八、删除文档:

      db.collection1.deleteOne({"age":"25"});

      删除collection1中年龄25的文档。

      db.collection1.deleteMany({"age":22});

      删除集合中所有年龄22岁的文档。

      db.collection1.deleteMany({})

      删除文档

    九、查询文档

      语法:db.collection_name.find(query, projection)

      参数说明:

        query:可选,使用查询操作符指定查询条件

        projection:可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

      栗子1:

        在find()后添加pretty()会以易读方式显示。

      栗子2:

      

       使用and条件查询:

      在MongoDB中传入多个键值对,每个键用逗号隔开

      格式:db.collection_name.find({key1:value1, key2:value2})

      查找age大于21岁,并且name为name3的文档

      使用or条件查询:

        在查询条件前添加$or,

        格式:db.collection_name.find(

                      {

                        $or : [

                            {key1:value1}, { key2:value2}

                           ]

                        }

                     )

       新鲜的栗子:查找name是name4或者age是22的文档

      limi()方法:

       指定读取数量

       语法:

        db.COLLECTION_NAME.find().limit(NUMBER);

       栗子:只读取两条数据

        skip方法:

       跳过指定数量的数据开始读取

       语法:db.collection_name.find().skip(2);

        sort方法:

       对数据进行排序,用1代表升序,-1代表降序

       语法:db.COLLECTION_NAME.find().sort({KEY:1})

      

      对年龄进行降序

            

  • 相关阅读:
    IPv6隧道技术——6to4实验分析
    IPV6地址解析与DAD机制实验分析
    交换机的高级特性
    组播IGMP实验分析
    BGP实验分析(二)
    BGP实验分析(一)
    路由策略实验分析(二)
    路由策略实验分析(一)
    一线互联网拼多多、饿了么、蚂蚁金服、哈啰出行、携程、饿了么、2345、百度等一些Java面试题
    Java中的匿名内部类
  • 原文地址:https://www.cnblogs.com/MoonlightMaleGod/p/9590034.html
Copyright © 2011-2022 走看看