mongodb基本操作

发布时间:2026/8/1 19:22:29
mongodb基本操作 一.1.集群部署主从配置文件一致systemLog: verbosity: 0 #日志路径配置 path: mongod.log logAppend: true destination: file net: port: 27017 #开启外网访问权限 bindIp: 0.0.0.0 processManagement: fork: true pidFilePath: /home/mongodb/pid/mongod.pid storage:db #数据存储路径 dbPath: /home/mongodb/data/db directoryPerDB: true wiredTiger: engineConfig: cacheSizeGB: 1 security: authorization: enabled keyFile: /home/mongodb/mongodb.key clusterAuthMode: keyFile replication: replSetName: rs0 oplogSizeMB: 5000主库创建用户db.createUser({user:admin, pwd:admin, roles:[{role:root,db:admin}]})登录用户db.auth(admin,admin)初始化节点rs.initiate({_id:rs0, members:[{_id:0, host:192.168.40.1:27017},{_id:1, host:192.168.40.2:27017}]})新增节点rs.add(ip:port);移除节点rs.remove(ip:port);主库创建密钥key文件openssl rand-base64666/home/mongodb/mongodb.keychmod600/home/mongodb/mongodb.key之后把mongodb.key复制到从库权限保持一致查看配置rs.config();查看状态rs.status();PRIMARY表示主节点SECONDARY表示从节点部署好后主库会自动把全量数据同步至从库二.1.查询where 查询db.getCollection(xxxx).find({id:NumberLong(11111111111)}).limit(10)查询表行数db.getCollection(xxxx).count()查询某age和sex列过滤条件并且把sex列的列名改成性别db.getCollection(xxxx).aggregate([{$match: {sex:男,category: {$in:[数学,语文]},fieldName: {exists:true,$ne:null},createTime: { $gte: ISODate(2022-07-01T00:00:00Z),$lte: ISODate(2022-08-01T00:00:00Z)},} },{$project: {_id:0,age:1,性别:$sex,生日:{$dateToString:{format:%Y-%m-%d %H-%M-%S,date:$birth}},number:$number,时间:}},//查询前10条{ $limit:10},//如果想分组就写下面这个group,{$group: {_id:$colname,//分组字段number: { $avg:$age} } }]);2.新增db.collection.insertOne({name:Example Document});3.修改单个修改批量修改db.getCollection(table).update({aaa:0108},{$set:{bbb:360}},{multi:true});4.删除5.创建视图db.createView(view_name,collection_name,[{ $match: { abc:2109245374} },{ $project: { _id:1,abc:1,def:1} }])查看当前执行的任务db.currentOp()三.1.导出mongodump -h dbhost -d dbname -o dbdirectory2.导入mongorestore -h dbhost -d dbname --dir dbdirectory3.连接mongosh --host localhost --port 27017 --username root --password 123456 --authenticationDatabase admin4.查询数据库show dbs5.查询所有集合show collections6.查询版本号db.version()7.查看慢日志db.getProfilingLevel() 查看慢日志是否开启12是开启慢日志 db.setProfilingLevel(2, 100) // 开启详细记录并设置慢查询阈值为100毫秒