MongoDB日常使用的技巧与注意事项汇总_MongoDB_脚本

作者:计算机专家

前言

1、一时必要删除钦点字段那一列,使用update操作。比方要删减name这一列:

启动

  1. 动用布置文件

    mongod -f /etc/mongod.conf

    参数配置

  2. 运用参数

mongod --dbpath=./data

那是后生可畏篇经常性行使MongoDB时候蒙受的标题标解决技能的稿子,分享出去供我们参谋学习,下边话相当少说了,来协同探问详细的牵线吧。

query  json:

异形退出程序后 运维报错

sudo mongod -repair

意气风发、查找数组字段不为空的笔录

{"name":{$exists:true}} 

关闭进度

mongo
use admin
db.shutdownServer()

假诺权力允许的话就实践成功了

追寻数据中数组字段不为空的记录。

update json:

权限

  1. 角色
    https://docs.mongodb.com/manual/core/authentication-mechanisms/
> db.getUser('root')
{
    "_id" : "admin.root",
    "user" : "root",
    "db" : "admin",
    "roles" : [
        {
            "role" : "hostManager", // 执行 shutdownServer
            "db" : "admin"
        },
        {
            "role" : "dbAdminAnyDatabase", // 添加其他权限的权限
            "db" : "admin"
        }
    ]
}
  1. 权限
    链接地址
const url = `mongodb://${config.mongodb.user}:${config.mongodb.pwd}@${config.mongodb.ip}:${config.mongodb.port}/${config.mongodb.dbName}`;

举个例证:有以下Mongo文书档案,

{$unset:{"name":""}}

同意远程连接

sudo netstat -nputl
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      1109/mongod   

看了瞬间MongoDB 的劳动监听的地址,因而你选用192.168.1.4,是链接不上的,会被回绝,那些三个元应
mongod文件增添如下行,已存在请修正

bind_ip = 0.0.0.0    

除此以外假使是redhat,centos 种类的,张开防火墙端口

iptables -A INPUT -p tcp -m tcp --dport 27017 -j ACCEPT 

有时关闭selinux

setenforce 0
{ "id" : "581c060f2b436c05aafb1632", "commit_history" : [ "581c20d52b436c05aafb1633", "581c21c12b436c05aafb1634" ]},{ "id" : "581c060f2b436c05aafb1633", "commit_history" : []}

2、数据导出,在mongodb的bin目录实施mongoexport命令并设定相关的参数,举例:

mongodb shell 脚本

mongo shell 是mongoDB JavaScript 接口。
当启动mongod的时候,他会自动到用户目录下寻觅三个被命名称叫.mongorc.js的js文件, 借使找到了,mongo将会第不常间实施那一个文件的内容在提示运行早前,假若您选拔 shell参数钦赐了三个js文件只怕表明式如--evalmongo将会先进行你钦命的文本后实践.mongorc.js文件,能够采纳--norc参数不实践.mongorc.js文件。

想要查找commit_history不为空的笔录,有以下措施:

./mongoexport -h 192.168.0.201 --port 27017 –d admin –u admin –p admin -c department -o /home/admin/department.dat

备份与数据复苏

动用MongoDB提供的四个工具来贯彻备份和恢复生机。那个七个工具在MongoDB的bin目录下能够看见:mongodump/mongorestor

mongodump备份的准绳是通过一遍询问获得当前服务器快速照相,并将快速照相写入磁盘中,因此这种方法保存的亦不是实时的,因为在收获快速照相后,服务器还大概有多少写入,为了确保备份的金昌,雷同我们依然得以使用fsync锁使服务器数据一时写入缓存中。

mongodump -d test -o backup //( backup是备份目录,默认创建到bin目录)
mongorestore -d test --drop backup/test/ //提一点的就是 drop选项,这里是说我将test数据恢复之前先删除原有数据库里面的数据

mongodump:
命令格式:mongodump -h dbhost -d dbname -o dbdirectory

-h: mongodb所在服务器地址,举例127.0.0.1,也得以钦点端口:127.0.0.1:8080

-d: 须要备份的数据库名称,举个例子:test_data

-o: 备份的数据寄存的岗位,举例:/home/bak

-u: 顾客名称,使用权力验证的mongodb服务,需求指明导出账号

-p:顾客密码,使用权限验证的mongodb服务,供给指明导出账号密码

mongorestore:
命令格式:mongorestore -h dbhost -d dbname -dorectoryperdb dbdireactory

-h: mongodb所在服务器地址

-d: 必要还原备份的数据库名称,比方:test_data,能够跟原本备份的数据库名称差别等
-directoryperdb: 备份数据所在地点,举个例子:/home/bak/test

-drop: 加上那个参数的时候,会在还原数据早先剔除当前多少;

sudo mongodump -u root -p conf_system --authenticationDatabase admin  -d conf -o /home/q/www/conf.qunar.com/back_up_db_conf
sudo mongorestore -u root -p conf_system --authenticationDatabase admin -d conf /home/q/www/conf.qunar.com/back_up_db/conf --drop

[参考]

  • MongoDB数据迁移方案
  • MongoDB数据库的备份,复苏与迁移,回滚

方法一: db.collection.find({commit_history: {$not: {$size: 0}}})

-h:钦定要一而再三番五次的数据库的ip;

方法二: db.collection.find({'commit_history.0': {$exists: 1}})

--port:钦定要连接的数据库的端口;

二、MongoDB增加顾客

-u:内定要连接的数据库的顾客名;

在MongoDB中为二个Collection增添顾客,能够如下操作:

-p:钦点要一而再再而三的数据库的用户密码;

use collection_name 切换来某些库

-d:内定要一连的库名;

db.createUser( { user: "collection_name", pwd: "password", roles: [ "readWrite", "dbAdmin" ] })

-c:钦定要导出的数目集结;

三、不时必要删除钦定字段那一列,使用update操作。

-o:钦点要导出的数量指标寄存地点;

本文由杏彩发布,转载请注明来源

关键词: