mongoDB基本命令操作

2024-06-25 1932阅读

文章目录

  • 1. 安装
    • (1). 启动mongodb
    • (2). 数据库连接
    • 2. 基本命令
      • (1) 数据库操作
      • (2) 集合操作
      • (3) 文档操作
        • 1) 简单查询
        • 2) 条件查询
        • 3) 投影查询
        • 4) 文档更新
        • 5) 列值增长修改
        • 6) 删除文档
        • 7) 分页查询
        • 8) 排序查询
        • 9) 正则查询(模糊查询)
        • 10) 比较查询
        • 11) 包含查询
        • 3. 索引
          • (1) 执行计划

            1. 安装

            官网:https://www.mongodb.com/try/download/community

            mongoDB基本命令操作
            (图片来源网络,侵删)

            (1). 启动mongodb

            # 命令行加参数
            mongod  --dbpath=..\data\db
            # 命令行加配置文件,需要先编写配置文件
            mongod -f ..\conf\mongod.conf
            

            (2). 数据库连接

            # 默认链接本地27017端口
            mongo
            # 指定连接
             mongo --host=127.0.0.1 --port=27017
            

            2. 基本命令

            (1) 数据库操作

            #  查看所有数据库
            show dbs  或者 show database
            # 创建使用数据库,存在使用不存在创建使用
            use dbName
            #  当前数据
            db
            #  删除数据库
            db.dropDatabse()
            

            (2) 集合操作

            #  集合创建
             db.createCollection("set1")
             #  集合查看
             show collections
            #  删除集合
            db.集合名称.drop()
            

            (3) 文档操作

            #  单文档插入(json格式插入),如果集合不存在会自动创建
            db.set1.insert({"id":1,"name":"zhangsan","age":23})
            #  多文档插入
            db.set1.insertMany([{"id":1,"name":"zhangsan","age":23},{"id":2,"name":"lisi","age":24}])
            

            1) 简单查询

            #  查询 
            db.集合名称.find()
            # 查询一条数据
            db.集合名称.findOne()
            

            2) 条件查询

            #  根据条件查询(json格式指定条件,如{"id":1})
            db.集合名称.find("条件")
            # 多条件(与或)
            db.集合名称.find({$and[{"条件集合"}]})
            db.集合名称.find({$or[{"条件集合"}]})
            

            3) 投影查询

            投影: 选择列

            db.集合名称.find({查询条件},{投影条件})
            例如:  db.set1.findOne({},{"name":1})
            

            4) 文档更新

            #  全局更新,使用更新内容替换原来的文档(默认为第一个)
            db.集合名.update({条件},{更新内容})
            #  局部更新(只会修改指定字段)
            db.集合名称.update({条件},{$set:{更新内容}})
            例如:  db.set1.update({"name":"wangwu"},{$set:{"age":18}})
            # 批量修改(上面语句默认修改一条) 使用updateMany命令
            db.set1.updateMany({"name":"wangwu"},{$set:{"age":18}})
            

            5) 列值增长修改

            #  使用$inc函数为增加
            db.集合名称.update({条件}{$inc:{"增加字段":增加值}})
            

            6) 删除文档

            #  会删除条件匹配的所有数据
            db.集合名称.remove({条件})
            #  删除集合中全部数据
            db.集合名称.remove()
            

            7) 分页查询

            # 统计,不带条件统计所有
            db.集合名称.count({查询条件})
            #  查询前2条记录
            db.集合名称.find().limit(2)
            # 跳过前2条数据
            db.集合名称.find().limit(2)
            # 分页查询(配合skip和limit)
            db.集合名称.find().limit(2).skip(3)
            

            8) 排序查询

            # 1为降序,-1为升序
            db.集合名称.find().sort({排序字段:1})
            

            9) 正则查询(模糊查询)

            db.集合名称.find({查询条件:/正则/})
            

            10) 比较查询

            db.集合名称.find({"字段":{$指令:值}})
            /*
            指令: 
            	>			gt
            	= 			gte
            	"字段":{$in:["匹配集合"]}})
             "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]
            v :  		索引版本
            key: 		索引字段
            	_id:	升序(-1降序)
            name: 		索引名称
            */
            "id":1})
            /*
            kyes: 为给哪些key创建索引
            options(常用): 
            	unique: 唯一索引
            	name: 	索引名称
            */
            指定名称或者条件})
            例如: db.set1.dropIndex({"id":1})
            # 删除所有索引
            db.集合名称.dropIndexes()
            
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]