MongoDB 客户端命令

By | 2022年12月7日

1. 借助现有容器查询

客户端安装可参考 Red Hat/CentOS

# K8S版方式进入
kubectl exec -it feemongo-0 -- bash -c "mongo --host feemongo --port 27017 -u <用户名> -p <密码>"
# Docker版进入方式(1e7 是容器ID的前三位)
docker exec -it 1e7 bash -c "mongo --host feemongo --port 27017 -u <用户名> -p <密码>"

# 接着设置好数据库后直接可以查表了
use feepolicy
db.USER.find().pretty()

2. 常用客户端命令

kubectl exec -it feemongo-0 -- bash
mongo --host feemongo --port 27017 -u <用户名> -p <密码>
# 若不需要认证,则直接使用下面的命令即可
#mongo

# 也可以进入 mongo 后认证
#use admin
#db.auth("<用户名>","<密码>")

# 显示所有数据库
show dbs
# 显示当前数据库
db
# 更改当前数据库
use feepolicy
# 获取当前数据库下的所有表
show collections
# 查询用户表中所有数据
db.USER.find()
# 查询用户表中所有数据,以友好格式呈现
db.USER.find().pretty()
# 按 ID 查询用户表中记录
db.USER.find({"_id":ObjectId("<ID>")}).pretty()
# 查询 username字段值为 admin 的记录
db.USER.find({username:{$eq:"admin"}}).pretty()
# 查询地址对象 name 字段值为 空字符串、null 的记录
db.IP_OBJECT.find({name:{$eq:""}})
db.IP_OBJECT.find({name:{$eq:null}})
# 通过传入多个名字,查询多个IP对象
db.IP_OBJECT.find({name:{$in:["3.3.3.0-2_B1Z422","192.168.1.199_AO9ZT22"]}})
# 查询完仅返回每条记录的 name 字段
db.IP_OBJECT.find({name:{$in:["3.3.3.0-2_B1Z422","192.168.1.199_AO9ZT22"]}}, {"_id":0, "name":1})
# 删除用户表中所有数据,不删除表,若要删除表情用 drop 方法
db.USER.remove({})
# 删组织架构菜单
db.MENU.remove({code:'xyz'})  

# 遍历表数据,并用每条数据的 name 值在其他表中创建新记录
db.USER_GROUP_BACKUP.find().forEach( function(doc) { print( "user: " + doc.name ); db.USER_GROUP.insertOne(doc); } );

# 更新 xyz 这条数据
db.MENU.update({'code':'xyz'},{$set:{'pageMenuType':'ROUTE','resource':'setting.collection.profile','action':''}})

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注