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

  

  对年龄进行降序

 

        

posted @ 2018-09-06 17:50  月光男神  阅读(247)  评论(0编辑  收藏  举报