常用命令
原创大约 2 分钟
很多Java
工程师除了会Java以外,好像不会别的,比如问到常用的MongoDB命令有哪些,都该怎么使用的时候,很多人都是一问三不知。
这一点让人很意外,但不是夸大,而是在面试很多Java工程师时的真实结果。
虽然在系统运行时,必须通过代码来读写数据库的数据,但在日常调试的时候,能够用命令直接和数据库打交道的话,显然比代码要高效很多。
下面是在调试MongoDB时,高频会用到的一些命令。
# 创建用户
> use chebian
db.createUser(
{
user: "chebian",
pwd: "Chebian@help",
roles: [ { role: "dbOwner", db: "chebian" } ]
}
)
# 查看用户
> use admin
> db.system.users.find()
# 删除用户
> db.system.users.remove({user:"suiyi"})
# 登录分片副本集:
> /usr/local/mongodb/bin/mongo 192.168.2.251:60000/chebian
# 为集合添加2dsphere索引
> db.user.ensureIndex({"gispoint":"2d"})
> db.user.ensureIndex({"gispoint":"2dsphere"})
# 添加LBS信息
> db.user.update({guid:"1"},{$set:{guid:"1",gispoint:[116.3801292048, 40.0376598124],updatetime:"2016-04-14 18:05:51"}}, true, false)
> db.user.update({guid:"2"},{$set:{guid:"2",gispoint:[116.3359254349, 40.0775697409],updatetime:"2016-04-14 18:05:51"}}, true, false)
> db.user.update({guid:"3"},{$set:{guid:"3",gispoint:[116.4393012291, 40.0293400566],updatetime:"2016-04-14 18:05:51"}}, true, false)
# 查找用户位置
> db.user.find({"gispoint":{$near:[116.3359254349, 40.0775697409], $maxDistance:0.5/111.12}},{_id:0}).limit(3)
> db.runCommand({geoNear:"user", near:[116.3359254349, 40.0775697409], distanceMultiplier:6378137, maxDistance:1000/6378137, num:10, spherical:true})
# 聚合操作需要使用2dsphere索引
> db.user.aggregate({
"$geoNear":{
"near":{
"type":"gispoint",
"coordinates":[116.3359254349, 40.0775697409]
},
"distanceField":"dist.calculated",
"distanceMultiplier":6378137,
"num":10,
"maxDistance":10000,
"spherical":true
}
});
其中:
near : GeoJSON或者坐标数组
spherical : 需要使用2dsphere索引,决定了MongoDB如何计算距离,缺省值为false
distanceMultiplier : 地球半径,用distanceMultiplier指定地球半径来得到实际的公里或者米的距离,取决于设置的值为6378137还是111.12
如果设置的值为6378137,则对应的distance / minDistance单位为米
如果设置的值为111.12,则对应的distance / minDistance单位为公里
minDistance : 距离中心点的最小范围
maxDistance : 距离中心点的最大范围,2500表示2500米范围内的位置坐标
distanceField : 该字段用来决定是否包含距离字段,必须指定
limit : 返回所有符合条件的位置数量,缺省数量是100条
num : 与limit作用相同,都是返回所有符合条件的位置数量,如果同时指定了limit和num,那么num将覆盖limit
uniqueDocs : 如果为true,那么查询将立即返回匹配的结果并结束查找
query : 查询条件,用来限制查询所匹配的结果,如query:{Name:”肯德基”}
# 去除重复的索引
> db.user.getIndexes()
> db.user.dropIndex("gispoint_2d")
# 查看mongodb最大连接数
> db.serverStatus().connections
# 修改mongodb最大连接数,在启动里边加参数
> --maxConns=20000
# 或者在/etc/mongod.conf中加
> maxConns=20000
感谢支持
更多内容,请移步《超级个体》。