01 . MongoDB简介及部署配置 (4)

ObjectId 类似唯一主键,可以很快的去生成和排序,包含 12 bytes,含义是:

# 前 4 个字节表示创建 **unix** 时间戳,格林尼治时间 **UTC** 时间,比北京时间晚了 8 个小时 # 接下来的 3 个字节是机器标识码 # 紧接的两个字节由进程 id 组成 PID # 最后三个字节是随机

MongoDB 中存储的文档必须有一个 _id 键。这个键的值可以是任何类型的,默认是个 ObjectId 对象

由于 ObjectId 中保存了创建的时间戳,所以你不需要为你的文档保存时间戳字段,你可以通过 getTimestamp 函数来获取文档的创建时间:

> var newObject = ObjectId() > newObject.getTimestamp() ISODate("2020-06-19T02:44:34Z")

Objectid转换为字符串

> newObject.str 5eec2692383608904cb30cb6 字符串

BSON 字符串都是 UTF-8 编码

时间戳

BSON 有一个特殊的时间戳类型用于 MongoDB 内部使用,与普通的 日期 类型不相关。 时间戳值是一个 64 位的值。其中:

# 前32位是一个 time_t 值(与Unix新纪元相差的秒数) # 后32位是在某秒中操作的一个递增的`序数`

在单个 mongod 实例中,时间戳值通常是唯一的。

在复制集中, oplog 有一个 ts 字段。这个字段中的值使用BSON时间戳表示了操作时间。

BSON 时间戳类型主要用于 MongoDB 内部使用。在大多数情况下的应用开发中,你可以使用 BSON 日期类型。

日期

表示当前距离 Unix新纪元(1970年1月1日)的毫秒数。日期类型是有符号的, 负数表示 1970 年之前的日期。

> var mydate1 = new Date() > mydate1 ISODate("2020-06-19T02:49:22.128Z") > var mydate2 = ISODate() > mydate2 ISODate("2020-06-19T02:47:44.664Z") # 这样创建的时间是日期类型,可以使用 JS 中的 Date 类型的方法。 # 返回一个时间类型的字符串: > var mydate1str = mydate1.toString() > mydate1str Fri Jun 19 2020 10:49:22 GMT+0800 (CST) > typeof mydate1str string OR > Date() Fri Jun 19 2020 10:53:15 GMT+0800 (CST) MongoDB常用命令及配置文件参数详解 命令参数详解 --logpath # 日志文件路径 --master # 指定为主机器 --slave # 指定为从机器 --source # 指定主机器的IP地址 --pologSize # 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。 --logappend # 日志文件末尾添加 --port # 启用端口号 --fork # 在后台运行 --only # 指定只复制哪一个数据库 --slavedelay # 指从复制检测的时间间隔 --auth # 是否需要验证权限登录(用户名和密码) -h [ --help ] # show this usage information --version # show version information -f [ --config ] arg # configuration file specifying additional options --port arg # specify port number --bind_ip arg # local ip address to bind listener - all local ips bound by default -v [ --verbose ] # be more verbose (include multiple times for more verbosity e.g. -vvvvv) --dbpath arg (=http://www.likecs.com/data/db/) # directory for datafiles 指定数据存放目录 --quiet # quieter output 静默模式 --logpath arg # file to send all output to instead of stdout 指定日志存放目录 --logappend # appnd to logpath instead of over-writing 指定日志是以追加还是以覆盖的方式写入日志文件 --fork # fork server process 以创建子进程的方式运行 --cpu # periodically show cpu and iowait utilization 周期性的显示cpu和io的使用情况 --noauth # run without security 无认证模式运行 --auth # run with security 认证模式运行 --objcheck # inspect client data for validity on receipt 检查客户端输入数据的有效性检查 --quota # enable db quota management 开始数据库配额的管理 --quotaFiles arg # number of files allower per db, requires --quota 规定每个数据库允许的文件数 --appsrvpath arg # root directory for the babble app server --nocursors # diagnostic/debugging option 调试诊断选项 --nohints # ignore query hints 忽略查询命中率 --nohttpinterface # disable http interface 关闭http接口,默认是28017 --noscripting # disable scripting engine 关闭脚本引擎 --noprealloc # disable data file preallocation 关闭数据库文件大小预分配 --smallfiles # use a smaller default file size 使用较小的默认文件大小 --nssize arg (=16) # .ns file size (in MB) for new databases 新数据库ns文件的默认大小 --diaglog arg # 0=off 1=W 2=R 3=both 7=W+some reads 提供的方式,是只读,只写,还是读写都行,还是主要写+部分的读模式 --sysinfo # print some diagnostic system information 打印系统诊断信息 --upgrade # upgrade db if needed 如果需要就更新数据库 --repair # run repair on all dbs 修复所有的数据库 --notablescan # do not allow table scans 不运行表扫描 --syncdelay arg (=60) # seconds between disk syncs (0 for never) 系统同步刷新磁盘的时间,默认是60s Replication options: --master # master mode 主复制模式 --slave # slave mode 从复制模式 --source arg # when slave: specify master as <server:port> 当为从时,指定主的地址和端口 --only arg # when slave: specify a single database to replicate 当为从时,指定需要从主复制的单一库 --pairwith arg # address of server to pair with --arbiter arg # address of arbiter server 仲裁服务器,在主主中和pair中用到 --autoresync # automatically resync if slave data is stale 自动同步从的数据 --oplogSize arg # size limit (in MB) for op log 指定操作日志的大小 --opIdMem arg # size limit (in bytes) for in memory storage of op ids指定存储操作日志的内存大小 Sharding options: --configsvr # declare this is a config db of a cluster 指定shard中的配置服务器 --shardsvr # declare this is a shard db of a cluster 指定shard服务器 其他配置参数含义 --quiet # 安静输出 --port arg # 指定服务端口号,默认端口27017 --bind_ip arg # 绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP --logpath arg # 指定MongoDB日志文件,注意是指定文件不是目录 --logappend # 使用追加的方式写日志 --pidfilepath arg # PID File 的完整路径,如果没有设置,则没有PID文件 --keyFile arg # 集群的私钥的完整路径,只对于Replica Set 架构有效 --unixSocketPrefix arg # UNIX域套接字替代目录,(默认为 /tmp) --fork # 以守护进程的方式运行MongoDB,创建服务器进程 --auth # 启用验证 --cpu # 定期显示CPU的CPU利用率和iowait --dbpath arg # 指定数据库路径 --diaglog arg # diaglog选项 0=off 1=W 2=R 3=both 7=W+some reads --directoryperdb # 设置每个数据库将被保存在一个单独的目录 --journal # 启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里 --journalOptions arg # 启用日志诊断选项 --ipv6 # 启用IPv6选项 --jsonp # 允许JSONP形式通过HTTP访问(有安全影响) --maxConns arg # 最大同时连接数 默认2000 --noauth # 不启用验证 --nohttpinterface # 关闭http接口,默认关闭27018端口访问 --noprealloc # 禁用数据文件预分配(往往影响性能) --noscripting # 禁用脚本引擎 --notablescan # 不允许表扫描 --nounixsocket # 禁用Unix套接字监听 --nssize arg (=16) # 设置信数据库.ns文件大小(MB) --objcheck # 在收到客户数据,检查的有效性, --profile arg # 档案参数 0=off 1=slow, 2=all --quota # 限制每个数据库的文件数,设置默认为8 --quotaFiles arg # number of files allower per db, requires --quota --rest # 开启简单的rest API --repair # 修复所有数据库run repair on all dbs --repairpath arg # 修复库生成的文件的目录,默认为目录名称dbpath --slowms arg (=100) # value of slow for profile and console log --smallfiles # 使用较小的默认文件 --syncdelay arg (=60) # 数据写入磁盘的时间秒数(0=never,不推荐) --sysinfo # 打印一些诊断系统信息 --upgrade # 如果需要升级数据库 #Replicaton 参数 --fastsync # 从一个dbpath里启用从库复制服务,该dbpath的数据库是主库的快照,可用于快速启用同步 --autoresync # 如果从库与主库同步数据差得多,自动重新同步, --oplogSize arg # 设置oplog的大小(MB) #主/从参数 --master # 主库模式 --slave # 从库模式 --source arg # 从库 端口号 --only arg # 指定单一的数据库复制 --slavedelay arg # 设置从库同步主库的延迟时间 #Replica set(副本集)选项: --replSet arg # 设置副本集名称 #Sharding(分片)选项 --configsvr # 声明这是一个集群的config服务,默认端口27019,默认目录/data/configdb --shardsvr # 声明这是一个集群的分片,默认端口27018 --noMoveParanoia # 关闭偏执为moveChunk数据保存 配置文件参数详解 # 简单示例 # 数据库数据存放目录 dbpath=http://www.likecs.com/usr/local/mongodb/data # 数据库日志存放目录 logpath=http://www.likecs.com/usr/local/mongodb/logs/mongodb.log # 以追加的方式记录日志 logappend = true # 端口号 默认为27017 port=27017 # 以后台方式运行进程 fork=true # 开启用户认证 auth=true # 关闭http接口,默认关闭http端口访问 #nohttpinterface=true # mongodb所绑定的ip地址 #bind_ip = 127.0.0.1 # 启用日志文件,默认启用 journal=true # 这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false quiet=true

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssxxw.html