MongoDB简单使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB简单使用相关的知识,希望对你有一定的参考价值。
在启用mongodb服务的时候,会有三个警告:
第一个警告: Linux内存动态分配,mongo占用内存较大,官方推荐关闭动态分配所以警告
第二个警告: 默认分配给mongo的进程和文件数量限制过低,需要重新分配
第三个警告: 我们用root权限启动mongo,数据不安全.用--auth来创建用户,来认证
简介:
1.类似json格式, 键值对形式,每一条叫文档, 2.不用事前创建数据库,给数据就会自动创建 3.mongoDB必须是utf-8
启动mongo命令:
1.sudo mongod 是启用服务的命令
2.# 启动mongod,并指定数据存储目录(目录必须存在,且有读写权限)
sudo mongod --dbpath=/xxxxx/xxxx
3.使用守护进程方式启动,用--fork,就必须启动logpath
sudo mongod--logpath=/data/db/mongodb.log --fork
4.使用用户认证方式启动
sudo mongod --auth
进入shell
命令:mongo---use admin---db.createUser({user: ‘python‘, pwd:‘python‘, roles: [‘root‘]})
登录db.auth(‘python‘,‘python‘)
换个用户名,可以设置权限roles:[{role: "read", db: ‘‘test‘}]
各个数据库的默认端口拓展
MongoDB端口27017
redis端口 6379
mysql端口 3306
mongo进入客户端
7. 查看当前数据库下所有的用户信息.
> db.system.users.find()
show collections
13. 删除bigcat用户
> db.dropUser("bigcat")
MongoDB的服务器统计,需要在MongoDB客户端键入命令db.stats()
查看当前数据库名
db
查看所有数据库名
show dbs
切换数据库,没有暂时不创建,插入数据时数据库才被创建
use 数据库名
删除数据库
db.dropDatabase()
集合命令
db.createCollection(name)--->向不存在的集合第一次添加数据时,集合也被创建
>db.createCollection("stu", {capped : true, size :6142800} )
----参数capped:默认值为false表示不设置上限,值为true表示设置上限
----参数size:当capped值为true时,需要指定此参数,表示上限大小,当文档达到上限时,会将之前的数据覆盖,单位为字节
语法 :
查看当前数据库的集合
show collections
删除集合命令
db.stu.drop()
插入
db.集合名.insert({})
insert添加相同_id的数据, 就会出错
db.集合名.save({})
save = insert + update
语法与insert 相同,相同_id就会修改
修改/添加:
db.stu.update({修改条件},{修改后的内容})默认修改匹配到的第一条文档全部数据
update({修改条件},{$set:{age:30}})只修改文档age为30,其他字段不变,默认修改第一个匹配到的文档
db.stu.update({},{$set: {age = 100}})修改所有文档中的age为100,默认修改第一个匹配到的文
匹配所有文档的:
db.stu.update({},{$set: {age = 100}},{multi:true}) 红色的参数就是让匹配所有文档
查询:
db.stu.find() 查询所有符合匹配条件的文档
db.stu.findOne() 查询第一个符合匹配的文档
db.stu.find({age: 18}).pretty()格式化输出
比较运算符
各个参数
"db":"test",表示当前是针对"test"这个数据库的描述。想要查看其他数据库,可以先运行$ use datbasename
"collections":3,表示当前数据库有多少个collections.可以通过运行show collections查看当前数据库具体有哪些collection.
"objects":267,表示当前数据库所有collection总共有多少行数据。显示的数据是一个估计值,并不是非常精确。
"avgObjSize":623.2322097378277,表示每行数据是大小,也是估计值,单位是bytes
"dataSize":16640,表示当前数据库所有数据的总大小,不是指占有磁盘大小。单位是bytes
"storageSize":110592,表示当前数据库占有磁盘大小,单位是bytes,因为mongodb有预分配空间机制,为了防止当有大量数据插入时对磁盘的压力,因此会事先多分配磁盘空间。
"numExtents":0,没有什么真实意义
"indexes":2,表示system.indexes表数据行数。
"indexSize":53248,表示索引占有磁盘大小。单位是bytes
"ok":1,表示服务器正常
SQL和MongoDB对比
SQL术语/概念 |
MongoDB术语/概念 |
解释/说明 |
database |
database |
数据库 |
table |
collection |
数据库表/集合 |
row |
document |
数据记录行/文档 |
column |
field |
数据属性/字段(域) |
index |
index |
索引 |
primary key |
primary key |
主键,MongoDB默认自动将_id字段设置为主键,可以手动设置 |
以上是总结
以上是关于MongoDB简单使用的主要内容,如果未能解决你的问题,请参考以下文章