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的基本操作的主要内容,如果未能解决你的问题,请参考以下文章