MongDB的linux安装和常用命令(含聚合查询)

本文详细介绍了MongoDB在Linux上的配置文件设置,包括端口号、数据库文件路径、日志路径等,并提供了启动、关闭数据库的命令。此外,还讲解了如何创建管理员和普通用户,以及切换数据库、查询数据、添加索引、删除数据等基础操作。最后,重点阐述了如何使用聚合查询功能进行数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

################### MongoDB中的配置文件##########

1.配置文件路径
    / $路径(安装目录)/bin/mongodb.conf

2.配置文件内容
    port = 27017#端口号
    dbpath = / soft / mongodb / mongodb / db#数据库文件存放目录
    logpath = / soft / mongodb / mongodb / logs / mongodb.log#数据库日志存放目录及文件
    logappend = true #是否启用追加的方式添加日志信息
    fork = true#是否不以守护进程的启用程序,即不在后台运行
    maxConns = 100#最大同时连接数
    auth = true#是否开启认证(auth = true等同于noauth = false )
    journal = true#每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
    storageEngine = wiredTiger#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的检查点,然后重放后续的期刊日志来恢复。
                                                         存储引擎有mmapv1,wiretiger,mongorocks
    bind_ip = 0.0.0.0#绑定外网IP

###################基础操作###################

1.monogodb启动
    cd mongodb安装目录/ bin
    ./mongod -f ./mongodb.conf
2.mongodb关闭
    ./mongod -f ./mongodb.conf-shutdown

3.初装mongodb时,未开启认证方式,但需要认证互用的,以下面的方式启动数据库
    ./mongodb --datapath = / $ path(安装路径)/ db --logpath = / $ path(安装路径)/logs/mongodb.log --fork --auth
    
    注:
        1.db和logs文件夹是自己创建的,根据自己创建的文件夹指定路径
        2.mongodb.log日志文件可以自行指定名称(建议使用mongodb.log)

4.创建管理员用户
    db.createUser({user:'你的管理员账号',pwd:'你的密码',角色:[{role:'userAdminAnyDatabase',db:'admin'}]});

5.创建普通用户
    db.createUser({user:“stjcdb”,pwd:“123456”,角色:[{role:“readWrite”,db:“stjc”}]})

#####################操作数据库#################

1.管理员用户登陆
    切换管理员用户的DB
    使用admin
    管理员认证
    db.auth(“你的账号”,“你的密码”);

---------->数据库已经启动

2.查询集合
    1)切换数据库
        使用stjc 
    2)获取集合
        显示集合

3.查看当前库下的所有用户
    show users;
4.查看数据库的用户
    使用admin;
    db.system.users.find(); -----> db.system.users.find()。pretty(); //格式化数据

#####################数据操作####################

1.使用业务数据库
    切换数据库
    使用stjc
    数据库认证
    db.auth(“stjcdb”,“123456”);
2.数据查询
    全部查询
        db.stjcInfoBase.find(); //查询全部
    只取第一个
        db.stjcInfoBase.findOne();
    条件查询
        db.stjcInfoBase.find({ “stjcName”: “新测试2”} );
    

3.添加索引
    db.stjcInfoBase.ensureIndex({ “createrTeacherId”:1});

    1:表示索引创建的方向;可以取值为1或-1;
    createrTeacherId:需要创建索引的字段;
4.删除数据
    db.stjcInfoBase.delete({“stjcName”:“新测试2”});
5.数据添加
    db.stjcInfoBase.save({ “名称”: “刘文涛”, “PD”: “123456”});
6.修改数据
    db.stjcInfoBase.update({ “名称”: “刘文涛”},{$设置:{ “测试”: “123456”}});


####################其他操作########################
1.查看当前表这张可以进行的操作
    db.stjcInfoBase.help();

#################合合查询##########################
1.Aggregate关键字可以对mongodb进行聚合查询
    db.studentInfoBase.aggregate([## studentInfoBase左表(主表)
        {
            $ lookup:{## $ lookup循环
                来自:“stjcInfoBase”,##来自右边所跟的表明相当于右表(ORM数据库被关联的表(inner join stjcInfoBase))
                localField:“stjcId”,##外键(studentInfoBase)
                foreignField:“_ id”,##主键(stjcInfoBase)
                as:“stjcInfoBase”##关联后数据的别名
            }
        ,{
            $ match:{##匹配条件关键字
                “studentUUID”:“a06484c26a514b3bb741”,##条件1(大于或小于可以时值可以通过{$ ge:10} {$ le:10}来实现)
                “stjcInfoBase.state”##条件2(被关联表中的条件可以通过别名。字段来设置)
            }
        },{
            $ project:{##设置结果集是否显示字段
                “stjcInfoBase”:1,## 1为显示0为不显示
                “_id”:0
            }
        },{
            $ limit:10 ##分页:每次显示10条
        },{
            $ skip:0 ##分页:从第0条开始(数据管道跳过0条)
        },{    
            $ sort:{##排序
                “stjcInfoBase。 createTime”:-1 ##设置排序字段1升序-1降序
            }
        }
    ])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值