1 比较 数字大小用的是字符串的话,需要也转为 字符串
2 所有的类型
Type | Number | Alias | Notes |
---|---|---|---|
Double | 1 | “double” | |
String | 2 | “string” | |
Object | 3 | “object” | |
Array | 4 | “array” | |
Binary data | 5 | “binData” | |
Undefined | 6 | “undefined” | Deprecated. |
ObjectId | 7 | “objectId” | |
Boolean | 8 | “bool” | |
Date | 9 | “date” | |
Null | 10 | “null” | |
Regular Expression | 11 | “regex” | |
DBPointer | 12 | “dbPointer” | Deprecated. |
JavaScript | 13 | “javascript” | |
Symbol | 14 | “symbol” | Deprecated. |
JavaScript (with scope) | 15 | “javascriptWithScope” | |
32-bit integer | 16 | “int” | |
Timestamp | 17 | “timestamp” | |
64-bit integer | 18 | “long” | |
Decimal128 | 19 | “decimal” | New in version 3.4. |
Min key | -1 | “minKey” | |
Max key | 127 | “maxKey” |
3 启动服务命令
nohup ./mongod --port 27071 --dbpath data/db --fork --logpath log/mongo.log
不加 --fork 关闭服务台自动关闭的会--fork 为了关闭客户端是不退出
但加了--fork就需要加 logpath, 否则 失败
3 mongodb 集群分片副本集搭建
临时关闭大内存页面的方法
echo never >> /sys/kernel/mm/transparent_hugepage/enabled
echo never >> /sys/kernel/mm/transparent_hugepage/defrag
下载 redhat 4.0
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.10.tgz
更新系统时间
/usr/sbin/ntpdate ntp1.aliyun.com
cd /opt
为目录创建超链接
ln -s mongodb-linux-x86_64-rhel70-4.0.10 mongodb
修改文件的组名和用户名,用户名在前
chown -R root.root mongodb
chown -R root.root /data/mongodb
查看用户组 groups
查看用户组 groups root (root:root)
为添加的用户指定相应的用户组
# useradd -g root tt
ln -s mongodb-linux-x86_64-rhel70-4.0.10 mongodb
添加用户修改密码的方法
1、在root下添加用户用 adduser 命令
# 添加用户 admin
[root@flm] #sudo adduser admin
2、添加用户登录密码
# 为用户 admin 修改密码
[root@flm] #sudo passwd admin
然后输入密码就可以了
分类: Linux
覆盖文件的方法,多行的数据 cat >/data/mongodb/config/mongo.conf <<"EOF" 竟然 mongodb 一般放在了mongodb的目录下了 # numactl --interleave=all mongod -f /etc/mongod.conf yum install numactl 配置集群前需要先启动 mongodb的服务 4.0变化,下面两个都去掉 启动后添加副本集连不上,我猜测是因为另外两个没有启动造成的,需要把另外两个也安装号才可以 rs.initiate({_id:"cfgReplSet",configsvr:true,members:[{_id:0,host:"127.0.0.1:21000"},{_id:1,host:"127.0.0.1:31000"},{_id:2,host:"127.0.0.1:41000"}]}) 创建服务的顺序 因为机器数码的限制,目前3个机器也变成了一个 开始配置 shard1 EOF 输入后自动结束 记得 cat >后面没有空格 启动失败因为上次一场关闭了 [root@VM_0_10_centos bin]# find / -name mongod.lock 查看当前目录下所有目录的占用大小 如果是配置不是 shard 使用命令会失败 ,因为不是 master/slave 关闭服务的方法 添加新用户的root和sudo权限 新建用户: 修改密码: passwd username 根据提示重复输入两遍userpwd. 赋予sudo权限: visudo 找到 root ALL=(ALL)ALL 在下面添加 username ALL=(ALL)ALL 赋予root权限,苏四日没作用 9 配置环境变量,将会非常简洁 vim /etc/profile 只改4个文件, 副本的都不变,除了路径和端口 此时原则是,第一个分片副本是 mongo localhost:22000 配置第二个副本集 numactl --interleave=all mongod --config /data/mongodb/shard12/mongo.conf 记得mongo.conf配置再 data/mongodb/shard1/下面 配置需要改3个地方才行 config = { 配置mongos失败了 systemLog:
cat > /root/test.txt <
dbpath=/data/mongodb/config/data/
logpath=/data/mongodb/config/log/config.log
logappend=true
port=21000
fork=true
rest=false
httpinterface=true
configsvr=true
replSet=cfgReplSet
EOF
分配大内存方式启动 命令
对于一口气吃掉内存大半的MongoDB,我的配置是:
1
即分配所有的node供其使用,这也是官方推荐的用法。
numastat 查看内存状态
numactl --interleave=all /opt/mongodb/bin/mongod -f /data/mongodb/config/mongo.conf
启动服务是无法识别 rest=true,需要去掉才可以
不识别 httpinterface 也要去掉 。。。。。
numactl --interleave=all /opt/mongodb/bin/mongo --host localhost --port 21000
先 config,然后 分片 shard,最后 mongos
目前
mongos 20000 30000 40000
config 21000 31000 41000
shard1 22000 32000 42000
cat >/data/mongodb/shard1/mongo.conf <<"EOF"
dbpath=/data/mongodb/shard1/data
logpath=/data/mongodb/shard1/log/shard1.log
logappend=true
port=22001
fork=true
replSet=shard1ReplSet
shardsvr=true
journal=false
/data/mongodb/shard1/data/mongod.lock
/data/mongodb/config/data/mongod.lock
//设置时间和 基础特殊查询
if(startdate==0||enddate==0){
// enddate = new Date().getTime();
// startdate = enddate = 24*7*60*60*1000;
LocalDateTime now = LocalDateTime.now();
LocalDateTime bef = now.minusHours(24*7);
enddate = Date.from(now.atZone(ZoneId.systemDefault()).toInstant()).getTime();
startdate = Date.from(bef.atZone(ZoneId.systemDefault()).toInstant()).getTime();
}
BasicDBObject condition = new BasicDBObject();
condition.put("aaaa",new BasicDBObject("$lte",enddate).append("$gte",startdate));
condition.put("bbb",statistic.getFloor());
condition.put("loadClass",new BasicDBObject("$in",getLoads(statistic.getLoadclasses())));
BasicDBObject resultFields=new BasicDBObject();
resultFields.put("timestamp",1);
resultFields.put("floor",1);
resultFields.put(Constants.map.get(statistic.getDrivingsituation()), 1);
Query query=new BasicQuery(condition.toJson(),resultFields.toJson());
du -h --max-depth=1
查看文件大小 结果用MK这些单位来表示
ls -alh
后台启动默认数据库路径, 记得改端口 不能有--fork
nohup ./mongod --port 27071 --dbpath data/db &
这句只适用于 自动安装的
sudo service mongod stop
> use admin;
switched to db admin
> db.shutdownServer();8
useradd username
usermod -a -G root mary.lee
切换用户命令
su gene
# 内容
export MONGODB_HOME=/opt/mongodb
export PATH=$MONGODB_HOME/bin:$PATH
# 使立即生效,在安装用户下(youknow)执行
source /etc/profile10 分片的副本原则,然后启动
shard1 shard2 shard3 分别端口是22000 32000 42000
numactl --interleave=all mongod --config /data/mongodb/shard2/mongo.conf
numactl --interleave=all mongo localhost:32000
numactl --interleave=all mongod --config /data/mongodb/shard3/mongo.conf
numactl --interleave=all mongo localhost:42000
#使用admin数据库
use admin
#定义副本集配置
config = {
_id : "shard1",
members : [
{_id : 0, host : "localhost:22000" },
{_id : 1, host : "localhost:32000" },
{_id : 2, host : "localhost:42000" }
]
}
#初始化副本集配置
rs.initiate(config);
#查看分区状态
rs.status();
#查看分区状态
rs.status();
numactl --interleave=all mongo localhost:22001
numactl --interleave=all mongod --config /data/mongodb/shard22/mongo.conf
numactl --interleave=all mongo localhost:32001
numactl --interleave=all mongod --config /data/mongodb/shard32/mongo.conf
numactl --interleave=all mongo localhost:42001
use admin
#定义副本集配置
config = {
_id : "shard2",
members : [
{_id : 3, host : "localhost:22001" },
{_id : 4, host : "localhost:32001" },
{_id : 5, host : "localhost:42001" }
]
}
_id : "shard3",
members : [
{_id : 6, host : "localhost:22002" },
{_id : 7, host : "localhost:32002" },
{_id : 8, host : "localhost:42002" }
]
}
启动和查看config的 服务
numactl --interleave=all mongod --config /data/mongodb/config/mongo.conf
numactl --interleave=all mongo localhost:21000
启动和查看mongos的 服务
numactl --interleave=all mongod --config /data/mongodb/mongos/mongo.conf
numactl --interleave=all mongo localhost:20000
destination: file
logAppend: true
path: /data/mongodb/mongos/log/mongos.log
processManagement:
fork: true
# pidFilePath: /data/mongodb/mongos/log/mongos.pid
# network interfaces
net:
port: 20000
bindIp: localhost
#监听的配置服务器,只能有1个或者3个 configs为配置服务器的副本集名字
sharding:
configDB: config/localhost:21000PHP MongoDB Unrecognized option: sharding.configDB 解决方案