mongoose:

删除子文档:collection.update({ 'students.stuid': id }, { $pull: { students: { id } } });

删除多条:collection.deleteMany();

查找+修改:collection.findAndUpdate({condition},{$set:{column:value,...}})

某字段值超过几位:collection.find({ $where: 'this.[column].length>x' })

模糊查找:collection.find({name:/刘睿峰/})

rabbitMq:

direct:只推送到key一直的交换机上

fanout:广播式,所有的交换机都有

topic:订阅key的消费者都有

queue:队列,先到先得,1个消费者只能取1个

导出:mongoexport -d platform -c user -o d:/cms_user.json --type json

导入:mongoimport --db auth --collection menu --file ./menu.json


备份:

#!/bin/bash
#backup MongoDB
#mongodump命令路径
DUMP=/usr/local/mongodb/backup/mongodump
#临时备份目录
OUT_DIR=/usr/local/mongodb/backup/mongodb_bak/mongodb_bak_now
#备份存放路径
TAR_DIR=/usr/local/mongodb/backup/mongodb_bak/mongodb_bak_list
#获取当前系统时间
DATE=`date +%Y_%m_%d`
#数据库账号
DB_USER=admin
#数据库密码
DB_PASS=admin
#DAYS=15代表删除15天前的备份,即只保留近15天的备份
DAYS=15
#最终保存的数据库备份文件
TAR_BAK="mongodb_bak_$DATE.tar.gz"
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
#备份全部数据库
$DUMP -d train -o $OUT_DIR/$DATE
#压缩为.tar.gz格式
tar -zcPvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
#删除15天前的备份文件
find $TAR_DIR/ -mtime +$DAYS -delete
#执行上传
$TAR_DIR/tosync.sh -a $TAR_BAK -b $DATE -c $TAR_DIR
exit

上传服务器:

#!/bin/bash
#backup 同步服务器
while getopts ":a:b:c:" opt
do
  case $opt in
    a)
    FILE=$OPTARG
    echo "参数a的值$OPTARG"
    echo $FILE
    ;;
    b)
    DATE=$OPTARG
    echo "参数b的值$OPTARG"
    echo $DATE
    ;;
    c)
    DIR=$OPTARG
    echo "参数c的值$OPTARG"
    echo $DIR
    ;;
    ?)
    echo "未知参数"
    exit 1;;
  esac
done
cd $DIR
git add $FILE
git commit -m "$DATE"
git remote set-url origin http://lrf402788946:lrf1327542758@git.cc-lotus.info/new_train/dataBase.git
git push
exit