文章目录
使用Dbeaver 旗舰版 操作 mongodb
前提
使用前提是得安装dbeaver旗舰版,或者企业版,社区版不支持mongodb连接。
安装破解可以去找我的其他文章(dbeaver-ultimate23.3安装破解)。
使用限制
通过dbeaver工具,仅可执行mongodb的部分脚本,绝大部分脚本都不支持解析执行。
例如,查询mongodb数据库 show dbs,db.test.insertMany()等。还是需要使用mongodb的客户端shell工具来执行。
但是dbeaver可以使用SQL语句去查询mongodb。请看官方解释:
很明确,仅支持部分,上图列表部分。
如果是这个结论,那dbeaver作为操作mongodb的工具,就不是个很好的选择了,唯一比较好的作用,就是数据可视化,及界面化修改删除数据记录。
支持脚本
use palces
db.places.find()
# 删除集合(数据表)
db.places.drop()
# 创建集合
db.createCollection('places')
# 批量插入地点数据
db.places.insert( [
{
loc: { type: "Point", coordinates: [ 114.537078, 30.505029 ] },
name: "公寓01",
category : "Park"
},
{
loc: { type: "Point", coordinates: [ 114.520989, 30.545705 ] },
name: "公寓02",
category: "Airport"
},
{
loc: { type: "Point", coordinates: [ 114.554095, 30.483247 ] },
name: "公寓03",
category : "Monument"
}
] )
查询如下:
#在loc列创建地理空间索引
db.places.createIndex( { loc : "2dsphere" } )
# 查询距离114.43702,30.492105 点附近50km内的地点,从近到远排
db.places.find( {
loc: {
$near: {
$geometry: {
type: "Point",
coordinates: [ 114.43702,30.492105 ]
},
$maxDistance : 50000
}
}
} )
输出如下
# 查询距离114.43702,30.492105 点附件50km内的地点,从近到远排,并返回距离(按球面距离计算)
db.places.aggregate([
{
$geoNear: {
near: { type: "Point", coordinates: [ 114.43702,30.492105 ] },
distanceField: "dist.calculated",
maxDistance: 50000,
includeLocs: "dist.loc",
spherical: true
}
}
])
输出如下:
其中,calculated是计算的距离
经验总结
1 dbeaver 作为一个通用的数据库连接工具,并不能支持数据库所有的shell脚本,例如mongodb的show dbs脚本;
2 若遇到dbeaver 无法执行的脚本,也不必过于纠结,再切换到官方的shell客户端即可;