MongoDB个人简单总结
当同一个变量被连续插入两次会出现id相同的异常,但是同样内容的两个变量同时插入不会有问题,可能是同一个变量同一个地址生成id相同,导致异常。
默认登陆不需要用户名密码认证,需要密码认证登陆需要在admin数据库user集合添加用户,并且以需要认证的方式启动,mongodb --auth,如果初始没有添加用户以该方式启动依然可以随意登陆,因为如果不这样就会无法登陆。
添加超级用户后直接访问别的数据(mongo dbbaes),依然无法访问,超级用户可以登录admin后再访问别的任何数据库,而无法直接访问别的数据库,可以用超级用户给其他数据库添加用户,方式一样,需要先进入对应数据库。
每条记录会有一个主键_id,可以自己设置可以默认系统的,不能重复。
程序插入记录时,同一个对象如果被同一次内插入了两次,则会报错,主键重复,但是内容可以重复。
非认证方式启动,用不用用户名密码都可以访问,不能用错的。
另外非正常情况下链接不报错,但执行具体的操作就会报错,具体原因没有深查。
认证方式启动必须用户名密码登陆。
mongodb在某个不正当操作下会导致操作某个集合报 SyntaxError: Unexpected token ILLEGAL 的错误,无论查询删除皆是如此,但是用js代码的方式可以解决; 例如 var c =db.getCollection(‘player’);c.drop();
mongodb设计模式:
优先考虑内嵌:比如一个人有几个手机号,这种对应数据少的情况下用内嵌足以;比如一个人有几个手机号,这种对应数据少的情况下用内嵌足以;
后考虑引用:但是如果是一个明星对应几万条留言,则考虑引用,因为内嵌在一个文档里会超过16M限制。这个时候你可以考虑使用引用的方式,在主表里存储一个id值,指向另一个表中的 id 值。
使用引用要注意的就是:从性能上讲,一般我们可能需要两次以上才能把需要的数据取回来。更加重要的是:需要把数据存放到两个集合里,但是目前为止MongoDB并不支持跨表的事务性,所以对于强事务的应用场景要谨慎使用。
mongodb索引:
mongodb有一个TTL索引,定义在date类型或者数组中有date类型的单字段上,可以用来删除过期数据。
mongodb集合添加一个字段 db.000001_DAY.update({}, {$set: {sid: 4}}, {multi: 1})
linux安装mongodb
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz 下载
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz 解压
mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb 移动到指定目录
export PATH=/data/mongodb/mongodb-linux-x86_64-3.0.6/bin:$PATH 添加path路径
mkdir -p /data/db 创建mongodb默认的启动数据库路径
数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
内部角色:__system
MongoDB个人简单总结的更多相关文章
- NOSQL -- Mongodb的简单操作与使用(win10)
NOSQL -- Mongodb的简单操作与使用(wins) MongoDB 创建集合: db.createCollection(name, options) use huhu db.createCo ...
- NOSQL -- Mongodb的简单操作与使用(wins)
NOSQL -- Mongodb的简单操作与使用(wins) 启动mongodb: 1.首先启动服务 dos命令下:net start Mongndb 也可以查询服务,手动开启服务: 完成后: 2.启 ...
- Linux系统下MongoDB的简单安装与基本操作
这篇文章主要介绍了Linux系统下MongoDB的简单安装与基本操作,需要的朋友可以参考下 Mongo DB ,是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式,备 ...
- express+mongodb+mongoose简单入门
mongodb安装 window安装方法就不讨论了,比较简单~我们来看一下在linux下面的安装步骤~(这里需要一点linux的简单命令知识哈) 1.下载文件到服务器(先创建好自己想安装的目录)~ c ...
- 基于node+koa2+mongodb实现简单的导航管理系统
基于node+koa2+mongodb实现简单的导航管理系统 项目说明 本项目gitbub地址 https://github.com/xuess/nav-admin,喜欢请star 基于node 实现 ...
- MongoDB最简单的入门教程之二 使用nodejs访问MongoDB
在前一篇教程 MongoDB最简单的入门教程之一 环境搭建 里,我们已经完成了MongoDB的环境搭建. 在localhost:27017的服务器上,在数据库admin下面创建了一个名为person的 ...
- MongoDB最简单的入门教程之三 使用Java代码往MongoDB里插入数据
前两篇教程我们介绍了如何搭建MongoDB的本地环境: MongoDB最简单的入门教程之一 环境搭建 以及如何用nodejs读取MongoDB里的记录: MongoDB最简单的入门教程之二 使用nod ...
- MongoDB最简单的入门教程之四:使用Spring Boot操作MongoDB
Spring Boot 是一个轻量级框架,可以完成基于 Spring 的应用程序的大部分配置工作.Spring Boot的目的是提供一组工具,以便快速构建容易配置的Spring应用程序,省去大量传统S ...
- MongoDB最简单的入门教程之五-通过Restful API访问MongoDB
通过前面四篇的学习,我们已经在本地安装了一个MongoDB数据库,并且通过一个简单的Spring boot应用的单元测试,插入了几条记录到MongoDB中,并通过MongoDB Compass查看到了 ...
- MongoDB + node-mongoskin简单演示样例
特点 无模式 MongoDB 中的每一条文档,都是一个 JSON 对象,因此你无需提前定义一个集合的结构,集合中的每一个文档也能够有不同的结构. 异步写入 MongoDB 默认全部的写操作都是『不安全 ...
随机推荐
- openlayers4 入门开发系列之图层控制(附源码下载)
前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...
- apktool 简单使用记录
修改APP:车来了 修改内容:首次启动引导页,中间的点素材修改.样式修改 修改前:未选中为白色,选中为蓝色,间距为5dip 修改后:未选中为红色,选中为黑色,间距为0 前后截图如下: 修改过程: ...
- QT文件操作
/* 写文件 */ QFile file(filePath); bool bo = file.open(QIODevice::WriteOnly | QIODevice::Append); //qDe ...
- vmware P2V迁移域内windows服务器脱域问题
windows 域服务器采用vmware converter进行物理机转换为虚拟机,需要在完成后进行退域重新加域操作. 否则,有可能会出现服务器在30天后脱域情况.出现脱域情况,可以通过退域加域的方式 ...
- react-router详细解释
react-router的理解 react的一个插件库,专门用来实现一个SPA应用(单页Web应用(single page web application,SPA)整个应用只有一个完整的页面,点击页面 ...
- 无废话--Mac OS, VS Code 搭建c/c++基本开发环境
无废话,直接上步骤. 1) 安装 xcode. 打开App Store,搜索xcode,进行下载安装. 2)执行命令: xcode-select --install 安装命令行工具. 3)安装VS C ...
- Java Excel导入导出(实战)
一.批量导入(将excel文件转成list) 1. 前台代码逻辑 1)首先在html页面加入下面的代码(可以忽略界面的样式) <label for="uploadFile" ...
- 数据库连接(1)-从JDBC到MyBatis
摘要 因为有持久层框架,和Spring的存在,越来越多的人对数据库连接这块不甚了解,只知使用方便,不知其原理.所以写一个数据库连接的系列文章,总结下本人在数据库连接方面遇到的问题,和对数据库连接的理解 ...
- pandas的apply操作
pandas的apply操作类似于Scala的udf一样方便,假设存在如下dataframe: id_part pred pred_class v_id 0 d [0.722817, 0.650064 ...
- Floor报错原理分析
最近开始打ctf了,发现好多sql注入都忘了,最近要好好复习一下. 基础知识: floor(): 去除小数部分 rand(): 产生随机数 rand(x): 每个x对应一个固定的值,但是如果连续执行多 ...