mongodb的基本操作

Posted 巴蜀秀才

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb的基本操作相关的知识,希望对你有一定的参考价值。

mongodb的基本操作

  在cmd中输入mongo进入数据库。输入show databases 可以查询已有的数据库,admin 和 local 都是自带的数据库,不

要去操作这两个数据库。下面介绍MongoDB的基本操作:增删查改!

  在对数据处理之前,我们先要建库建集合:

  建库:使用命令:use + 库名  如:use dan  ;如果库名存在则进入该库,不存在就创建!如果没有添加数据,会发生回滚

现象,使用show dbs 查看数据库,会显示没有这个库!

  查询集合:

  show collections 可以查询当前库的所有集合使用 show tables 可以查看当前库的所有集合。

  增加数据db.test.insert({\'name\':\'nike\',\'sex\':\'man\'}) 默认添加 id 。注意到这里的数据传入是以字典的格式!test为集

合名,使用show tables 可以查看当前库的所有集合。

    

       db.test.save({\'name\':\'dc&cn\',\'sex\':\'*\'})  save方法同样可以插入数据,如果指定已有的id还可以修改数据。

    为了方便下面的阐述,我们多添加几条数据!

  查询数据db.test.find()  查询test集合中的数据,默认显示20条。

        db.test.find({\'age\':{$eq:\'25\'}})  查询test集合中age等于\'25\'的数据。如果插入数据的时候是数字是以字符

        串传入的,则这里必须使用引号,不然匹配不到!

    

  这里的最后一条数据,25是以数值直接插入,查询的时候就查不到,所以数据的格式一定要注意!

        db.test.find({\'age\':{$eq:\'25\'},\'sex\':\'man\'})  查询test集合中age等于\'25\' 和性别为男的数据。这里也展示了

        多条件过滤。

  删除数据:db.test.drop({\'age\':\'25\'})   

        db.test.remove({\'age\':\'25\'})  删除test集合中age字段值为 \'25\' 的

        db.test.remove({\'name\':\'nike\',\'age\':\'15\'}) 多条件匹配删除,注意remove匹配到几条数据就会删除几条。

           db.test.remove({}) 删除当前文档,但是集合还在,是一个空集合

        db.test.drop()  删除集合

  更新数据db.test.update({\'name\':\'dc&cn\'},{$set:{\'age\':23}}) 

  此处找到name为dc&cn的数据将age改为23,没有该字段就是添加。每次都是修改匹配到的第一个。multi参数设置为True,会

  更新所有的数据。如:db.test.update({\'name\':\'lining\'},{$set:{\'age\':2000}},{\'multi\':3}) 这里的3默认为true,

  符合要求的数据将全部更新。

 

MongoDB的操作符

  比较操作符

  $ eq   等于     $ gt   大于     $ gte  不小于     $ lt   小于

  $ lte  不大于     $ ne   不等于      $ in  接一个数组,表示在数组元素中匹配

  逻辑操作符

  or  and  not  nor

  db.test.find({$or:[{\'age\':25},{\'sex\':\'man\'}]}) 匹配age为25或者sex为man的数据。$or后边也是接一个数组。

  db.test.find({$and:[{\'age\':25},{\'sex\':\'man\'}]})  匹配两个条件同时满足的数据,等价于:

                        db.test.find({\'age\':\'25\',\'sex\':\'man\'})

  db.test.find({\'age\':{$not:{$eq:\'25\'}}})   匹配age不等于25的。$not操作符只会影响其他操作符不能独立检查字段

  和文档。里使用not看似和比较操作符没有什么区别,但是将$eq换成$gt时就有明显的区别了。如下图所示:

  

  db.test.find({$nor:[{\'age\':\'25\'}]})  如果数组里面的元素使用比较操作符,会匹配失败

  更新操作符

     $inc  加减

  $mul   乘法

  $rename  重命名

  $set  更新某一个字段,其他保留

 

以上是关于mongodb的基本操作的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB——MongoDB安装+增删改查操作

04 MongoDB各种查询操作 以及聚合操作总结

mongodb基本操作

五.MongoDB入门-SpringData操作MongoDB

MongoDB聚合操作总结

MongoDB聚合操作总结