mongodb命令

Mongodb 插入数据的方式

空扰寡人 提交于 2020-03-07 18:01:57
mongodb安装与环境搭建: http://www.cnblogs.com/ccyinghua/p/7887713.html 一、用mongo命令插入数据 启动mongoDB后,进入mongo (1)建立数据库与数据库的集合 show dbs // 显示数据库列表 use demo // 创建,切换到demo数据库,要有数据才会显示在数据库列表中 db.createCollection("goods") // 创建goods集合 (2)插入数据 db.goods.insert({id:123,name:'hello'}) // 给goods集合插入数据 db.goods.find() // 查看goods集合下的数据 二、使用命令导入文件 注:使用mongoimport时需要退出mongo环境 /** * 导入到数据库 * mongoimport: 导入, * --db: 数据库database, * demo: 数据库的名称, * --collection: 集合collections, * goods: 集合的名称, * --file: 文件,后面是要导入的文件路径 */ mongoimport --db demo --collection goods --file E:\nodeJs\goods.json 三、使用客户端 安装mongovue,使用客户端建立数据库,添加集合

mongodb的shell命令

孤人 提交于 2020-03-07 06:52:42
MongoDB常用命令: 超级用户相关: use admin #增加或修改用户密码 db.addUser(ixigua,'pwd') #查看用户列表 db.system.users.find() #用户认证 db.auth(ixigua,'pwd') #删除用户 db.removeUser('mongodb') #查看所有用户 show users #查看所有数据库 show dbs #查看所有的collection show collections #查看各collection的状态 db.printCollectionStats() #查看主从复制状态 db.printReplicationInfo() #修复数据库 db.repairDatabase() #设置记录profiling,0=off 1=slow 2=all db.setProfilingLevel(1) #查看profiling show profile #拷贝数据库 db.copyDatabase('mail_addr','mail_addr_tmp') #删除collection db.mail_addr.drop() #删除当前的数据库 db.dropDatabase() 客户端连接: /usr/local/mongodb/bin/mongo 8.8.88/ixigualib -u ixigua -p

mongodb性能优化

青春壹個敷衍的年華 提交于 2020-03-06 22:33:26
建立索引是优化数据库最直接的手段.遵循以下索引优化原则,可以建立比较高效和合理的索引. 在索引中包含条件的所有列,可以使用索引形成的屏蔽来拒绝结果集中不合适的行 对于需要排序的引用列,适当地创建索引可以避免排序 考虑到管理上的开销,应避免在索引中使用多于5个的列 对于多列索引,将查询中引用最多的列放在定义的前面 不要在索引中包含经常修改或进行插入、删除的列(主关键字和外来关键字除外) “$”符号不可以作为索引的首字母,”.”不能在索引名的任何位置出现. 索引管理 1.建立索引的函数:ensureIndex(); eg.在name上建立索引1(升序),-1(降序),默认为升序. db.person.ensureIndex( { name : 1 } ); 当系统已有大量数据时,创建索引非常耗时,需要在后头执行,只需要指定background:true即可. db.user.ensureIndex( { age : 1 } , { background : true } ); 建立索引后,同一条查询语句比较2次扫描的记录条数. > db.user.find( { name:"user5" } ).explain(); 2.获取集合中的索引信息 db.person.getIndexKeys(); db.person.getIndexes(); 3.创建唯一索引

Mongodb的性能优化问题

人走茶凉 提交于 2020-03-06 22:02:09
摘要 数据库性能对软件整体性能有着至关重要的影响,对于Mongodb数据库常用的性能优化方法主要有: 范式化与反范式化; 填充因子的使用; 索引的使用; 一. 范式化与反范式化 范式是为了消除重复数据减少冗余数据,从而让数据库内的数据更好的组织,让磁盘空间得到更有效利用的一种标准化标准,满足高等级的范式的先决条件是满足低等级范式。在数据库设计阶段,明确集合的用途是对mongodb数据库性能调优非常重要的一步。根据集合中数据最常用的操作,对于频繁更新和频繁查询的集合,我们最需要关注的重点是他们的范式化程度。 1.1 范式化 1.1.1 范式化的优点: 范式化的数据库更新起来更加快; 范式化之后,只有很少的重复数据,只需要修改更少的数据; 范式化的表更小,可以在内存中执行; 很少的冗余数据,在查询的时候需要更少的distinct或者group by语句。 1.1.2 范式化的缺点: 范式化的表,在查询的时候经常需要很多的关联,因为单独一个表内不存在冗余和重复数据。这导致,稍微复杂一些的查询语句在查询范式的schema上都可能需要较多次的关联。这会增加让查询的代价,也可能使一些索引策略无效。因为范式化将列存放在不同的表中,而这些列在一个表中本可以属于同一个索引。 1.1.3 范式化设计的例子: 以存储一篇图书及其作者为例,作者的信息包括作者的姓名,年龄,国籍。使用范式化的设计如下: {

mac安装和使用mongodb

爷,独闯天下 提交于 2020-03-05 18:53:47
[top] 安装方式 MongoDB有三种方式:(1)手动命令安装(2)采用Homebrew(3)下载安装包。本文选择使用下载源码包的方式。 搭建步骤 # 进入 /usr/local cd /usr/local #下载 sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-x86_64-4.2.3.tgz # 解压 sudo tar -zxvf mongodb-osx-x86_64-4.2.3.tgz -C # 重命名为 mongodb 目录 sudo mv mongodb-osx-x86_64-4.2.3 MongoDb-4.2.3 设置环境变量 #切换到家目录 cd ~ #修改环境变量 zhanglongdeMacBook-Pro:~ zhanglong$ cat .bash_profile export PATH=${PATH}:/usr/local/MongoDb-4.2.3/bin # 保存退出 source .bash_profile # 验证mongo是否安装成功 zhanglongdeMacBook-Pro:~ zhanglong$ mongod -version db version v4.2.3 git version: 6874650b362138df74be53d366bbefc321ea32d4

Docker 安装 MongoDB

只谈情不闲聊 提交于 2020-03-05 13:26:20
Docker 安装 MongoDB MongoDB 是一个免费的开源跨平台面向文档的 NoSQL 数据库程序。 1、查看可用的 MongoDB 版本 访问 MongoDB 镜像库地址: https://hub.docker.com/_/mongo?tab=tags&page=1 。 可以通过 Sort by 查看其他版本的 MongoDB,默认是最新版本 mongo:latest 。 你也可以在下拉列表中找到其他你想要的版本: 此外,我们还可以用 docker search mongo 命令来查看可用版本: $ docker search mongo NAME DESCRIPTION STARS OFFICIAL AUTOMATED mongo MongoDB document databases ... 1989 [OK] mongo-express Web-based MongoDB admin int... 22 [OK] mvertes/alpine-mongo light MongoDB container 19 [OK] mongooseim/mongooseim-docker MongooseIM server the lates... 9 [OK] torusware/speedus-mongo Always updated official Mon... 9

MongoDB 索引(二)

二次信任 提交于 2020-03-05 10:45:46
4.索引交集 MongoDB可以使用多个索引的交集来实现查询。一般情况下,每个指标的交集包含两个指标;但是,MongoDB可以使用多个/嵌套的索引交叉点来解析查询。 要说明索引交集,请考虑具有以下索引的集合订单: { qty: 1 } { item: 1 } MongoDB可以使用两个索引的交集来支持以下查询: db.orders.find( { item: "abc123", qty: { $gt: 15 } } ) 要确定MongoDB是否使用了索引交集,请运行explain();explain()的结果将包括一个and_ordered阶段或一个AND_HASH阶段。 4.1指数前缀的交集 使用索引交集,MongoDB可以使用整个索引或索引前缀的交集。索引前缀是复合索引的子集,由一个或多个从索引开始的键组成。 考虑一个具有以下索引的托收订单: { qty: 1 } { status: 1, ord_date: -1 } 要完成下面的查询,它指定了qty字段和status字段的条件,MongoDB可以使用两个索引的交集: db.orders.find( { qty: { $gt: 10 } , status: "A" } ) 4.2 索引交集和复合索引 索引交集并不能消除创建复合索引的需要。然而,因为两个订单列表(即列出了键的顺序索引)和排序顺序(升序或降序),物质复合索引

Linux安装mongodb总结

风流意气都作罢 提交于 2020-03-05 09:57:40
  由于自己的博客上线部署时需要用到mongodb来存储图片文件,所以先在本地电脑上安装了mongodb做测试,由于之前没接触过mongodb,所以安装过程中遇到了各种小问题,折腾了好久终于安装好并成功启动服务了。这里决定写一篇博客来记录一下安装过程以及遇到的问题的解决方案。 注:文末有福利!   先写一下安装并启动mongodb正确的步骤,然后再总结其中遇到的问题。 一、安装过程 1.到mongodb官网下载对应系统的压缩包,我的系统是Ubuntu16.04,64位。(注意不要选错系统版本,也可以在本地下载好后上传到云服务器) 2.默认下载路径是到用户目录下的Downloads目录,将其解压 tar -zxvf mongodb-linux-x86_64-3.2.12.tgz 3.将解压后的文件夹移动到/usr/local/的mongodb目录下 mv -r mongodb-linux-x86_64-3.2.12 /usr/local/mongodb 4.配置系统文件profile sudo vi /etc/profile 插入下列内容: export MONGODB_HOME=/usr/local/mongodb export PATH=$PATH:$MONGODB_HOME/bin 注意保存后要重启系统配置: source /etc/profile 5

MongoDB入门上

你离开我真会死。 提交于 2020-03-04 22:40:01
MongoDB基本概念 1.文档是MongoDB中数据的基本单元,类似于关系型数据库的行(但比行复杂的多) 2.集合可以看成没有模式的表 3.MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限 4.MongoDB自带简洁但功能强大的javascript shell,这个工具对于管理MongoDB实例和操作数据非常有用 5.每一个文档都有一个特殊的键"_id",它在文档所处的集合中是唯一的. 详细介绍: a)文档 文档是MongoDB的核心概念.多个键及其关联的值有序的放置在一起便是文档. 大多数语言都有想通的一种数据结构,比如:映射,散列或字典.在javascript里面,文档表示为对象: {"greeting":"Hello world","age":30} 这个文档只有一个键"greeting",其对应的值为"Hello world".绝大数情况下,文档会比这复杂的多, 经常会包含多个键值对: {"greeting":"Hello world","Hello":"Refactor"} 文档中的键值对是有序的,上面的文档与下面的文档是不同的: {"Hello":"Refactor","greeting":"Hello world"} 文档中的值可以是字符串,也可以是其他几种数据类型.如例子中的"age"的值是整数 文档中的键是字符串,除了少数例外的情况下

MongoDB shell 介绍

◇◆丶佛笑我妖孽 提交于 2020-03-03 23:07:16
MongoDB shell 介绍 MongoDB自带javascript shell, 可在shell中使用命令行与MongoDB实列交互。shell可以执行管理操作,检查运行实列等等操作。 一:如何运行shell? 在命令行中,运行mongo, 就可以启动shell,如下命令: 注意:启动时,shell将自动连接MongoDB服务器,必须确保mongod已经启动。 shell是一个功能完备的javascript解析器,可以运行任意的javascript程序。我们请看如下几个简单的demo。 它还可以定义和调用Javascript函数,如下代码命令: 二:MongoDB客户端 运行命令 mongo后,shell会连到 MongoDB服务器的test数据库,并将数据库的链接赋值给全局变量db。 注意:db这个变量是通过shell访问MongoDB的主要入口点。 如果现在我们想要查看db当前指向那个数据库,可以使用db命令,如下所示: shell还包含一些非Javascript语法的扩展,比如选择数据库操作这些~ 如下代码: 如果现在查看db变量,会发现其正指向foobar数据库,如下命令: 如上,通过db变量,可以访问其中的集合,比如,通过db.foobar 可返回当前数据库的foobar集合。这意味着,几乎所有的数据库操作都可以通过shell完成。 三:shell中创建,读取,更新