mongodb入门(1)

参考:https://www.runoob.com/mongodb/

1、创建数据库

      use DATABASE_NAME

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

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

2、查看所有数据库

      show dbs

      注意:如果数据库中没有数据不会显示

3、查看当前数据库

       db

4、删除数据库

       db.dropDatabase()

       先使用use命令切换到要删除的数据库,然后执行上述命令

5、创建集合(集合类似数据库中的表)

      db.createCollection("myCollection")

      先使用use命令切换到指定数据库,然后执行创建集合命令,创建集合后空数据库也会显示

6、查询数据库所有集合

      show collections (shwo tables也可,建议前者)

      查询当前所在数据库的所有集合,没有数据的集合也会显示

7、删除集合

      db.myCollection.drop()     例:db.runoob.drop (runoob是collection的名字)8、

8、插入文档

       文档的数据结构和 JSON 基本一样。

       所有存储在集合中的数据都是 BSON 格式。

       BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。

     (1)db.COLLECTION_NAME.insert(document)

      insert(): 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,

     提示主键重复,不保存当前数据。

     (2) db.COLLECTION_NAME.save(document)

     save():如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使                                                   用 db.collection.insertOne() 或 db.collection.replaceOne() 来代替。

9、查看已插入文档

       db.myCollection.find()

10、更新文档

       db.collection.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 :可选,抛出异常的级别。

    只更新第一条记录: db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );

    全部更新:db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );

    只添加第一条:db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );

    全部添加进去:  db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );

    全部更新:db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );

     只更新第一条记录:db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );

11、删除文档

       db.collection.remove( <query>, { justOne: <boolean>, writeConcern: <document> } )

       参数说明:

      query :(可选)删除的文档的条件。

      justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。

      writeConcern :(可选)抛出异常的级别。

12、删除集合下所有文档

   db.col.remove({})

13、如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,

       db.myCollection.find().pretty()

14、MongoDB 与 RDBMS Where 语句比较

15、模糊查询

       查询 title 包含"教"字的文档: db.col.find({title:/教/})

     查询 title 字段以"教"字开头的文档: db.col.find({title:/^教/})

       查询 titl e字段以"教"字结尾的文档: db.col.find({title:/教$/})

16、分页  limit 和 skip

        (1)如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。

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

          例:db.col.find({},{"title":1,_id:0}).limit(2)     返回最多两条数据

       (2)我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。skip()方法默认参数为 0 。

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

          例:db.col.find({},{"title":1,_id:0}).limit(1).skip(1)

17、排序  sort()

        在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。

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

        例:db.col.find({},{"title":1,_id:0}).sort({"likes":-1})

18、索引

        db.collection.createIndex(keys, options)

        语法中 Key 值为你要创建的索引字段,1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1 即可。

        例:db.col.createIndex({"title":1})

        createIndex() 方法中你也可以设置使用多个字段创建索引(关系型数据库中称作复合索引)。

        例:db.col.createIndex({"title":1,"description":-1})

        在后台创建索引:db.values.createIndex({open: 1, close: 1}, {background: true})

19、聚合

        MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的 count(*)。

        例:db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值