zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    [LeetCode] Word Ladder II
    [LeetCode] Edit Distance
    [LeetCode] Merge Intervals
    内存分配与Segmentation fault
    结构体 指针 数组
    resolv.conf
    无法启动xwindow
    stopping NetworkManager daemon failed
    linux 挂载光盘:mount: you must specify the filesystem type
    修改主机hostname
  • 原文地址:https://www.cnblogs.com/Qsunshine/p/9717296.html
Copyright © 2011-2022 走看看