MongoDB学习

MongoDB学习记录

安装

直接安装

sudo apt-get install mongodb

查看是否已经启动[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yifwn0EQ-1573355993845)(http://pxne3dnp1.bkt.clouddn.com/xiaoshujiang/1568194734282.png)]

mongodb基本操作

database基本操作

  • 创建数据库
    use tangxing

  • 插入数据
    db.tangxing.insert({"name":'tangxing'})

  • 删除数据库
    db.dropDatabase()

  • 删除集合
    db.collection.drop()

  • 查看所有数据库
    show dbs

  • 插入文档
    db.test.insert({"name":"tangxing"})

  • 查找文档
    db.test.find()

  • 更新文档
    在这里插入图片描述

    使用 $set 来操作

db.test100.update({"name":"xiangwang"},{"name":"xiaozhang"}) # 将name为xinagwang的数据更新为"{name:"xiazhao"}"

db.test100.update({"name":"wang"}, {$set:{name:"xiaohong"}}) # 把name为xiaowang的数据的name值更新为xiaozhang 
  • 删除集合
    `db.集合名称.remove( , {justOne: ture or false})

  • 比较运算符
    在这里插入图片描述


在这里插入图片描述

在这里插入图片描述

小于等于
db.stu.find({age:{$lte:18}})

AND
db.stu.find({age:18, hometown = '桃花岛'})

  • 正则表达式
    在这里插入图片描述

db.stu.find({stu:/^abc/})

  • skip() , limit()
    db.products.find().skip(2).limit(2) #skip跳过2个,limit再选择2个

  • 自定义查询
    使用 $where后面写函数,返回满足条件的数据,查询年龄大于30的学生 this.age 代表从前往后查询

db.stu.find(
    $where:function(){
        return this.age>30; 
    }
)

只返回想要的字段
在这里插入图片描述
db.stu.find({},{name:1 , _id:0}) _id默认会显示,不显示的话设置为0

排序
在这里插入图片描述

  • count
    db.collection.find({条件}).count()
    db.collection.count({条件})

  • distinct
    db.stu.distinct("age")

数据的备份

在这里插入图片描述

pymongo的用法

<think> 嗯,用户明确表示需要MongoDB学习资料和方法,看来ta正在入门或者想系统学习这个数据库。从用户提问的简洁程度看,可能是个新手,不太清楚具体需要哪些资源,需要引导。 之前提供的引用材料挺全的,但需要整理得更友好。引用1提到MongoDB有基础操作、系统管理等完整学习路径;引用2给出了具体的学习资料列表,包括入门到进阶的11个主题;引用3则提供了SQL到MongoDB的语法对照链接——这些正好能组成体系化学习方案。 用户可能更关注如何快速上手,所以要把资料按学习阶段分层。第一阶段应该优先文档基本操作,特别是SQL用户最关心的CRUD语法转换(这里引用3的SQL对照表特别有用);第二阶段再深入索引、聚合这些进阶内容;最后才是复制分片等运维知识。这样阶梯式推进比较符合认知规律。 考虑到中文用户的需求,特意补充了中文教程资源。官方文档虽然权威但英文可能造成障碍,所以把中文社区和视频教程放在显眼位置。性能优化和模式设计这类实战内容单独作为第四阶段,因为用户实际使用时最容易卡在这些地方。 最后用思维导图总结学习路径是点睛之笔。用户可能面临信息过载,用图形化方式呈现“基础→核心→高级→实战”四个阶段,能帮ta建立全局认知。每个阶段的关键词(集合/索引/聚合等)都来自引用材料里的核心概念,确保准确性。 要不要提醒用户先装环境呢?不过资料推荐里已经包含官方快速入门,应该足够。如果用户后续追问安装问题再补充也不迟。 </think>根据您的需求,以下是系统化的MongoDB学习路径和精选资源,结合官方文档与实战教程: --- ### **一、分阶段学习路径** #### **第一阶段:基础概念** 1. **核心概念** - **文档(Document)**:类JSON的BSON格式数据单元(例:`{ name: "Alice", age: 25 }`) - **集合(Collection)**:文档的容器(类似SQL表) - **数据库(Database)**:集合的物理分组 > 参考官方文档:[MongoDB Glossary](https://www.mongodb.com/docs/manual/reference/glossary/) [^1] 2. **数据类型** 对比SQL与MongoDB数据类型映射: | SQL | MongoDB | 示例 | |-----------|------------|-----------------------| | INT | int32 | `age: 25` | | VARCHAR | string | `name: "Alice"` | | DATETIME | Date | `created: ISODate()` | #### **第二阶段:核心操作** 1. **CRUD操作**([SQL对比指南](https://www.mongodb.com/docs/manual/reference/sql-comparison/) [^3]) ```javascript // 插入文档 db.users.insertOne({name: "Bob", role: "admin"}) // 查询带条件 db.users.find({age: {$gt: 20}}) // 更新字段 db.users.updateOne({name: "Bob"}, {$set: {status: "active"}}) ``` 2. **聚合框架**([SQL聚合对比](https://www.mongodb.com/docs/manual/reference/sql-aggregation-comparison/) [^3]) ```javascript // 统计各角色用户数 (类比SQL: SELECT role, COUNT(*) FROM users GROUP BY role) db.users.aggregate([ { $group: { _id: "$role", count: { $sum: 1 } } } ]) ``` #### **第三阶段:进阶优化** 1. **索引优化** - 创建索引:`db.users.createIndex({email: 1})` - 索引类型:单字段、复合、文本、地理空间等 > 性能影响:[索引策略指南](https://www.mongodb.com/docs/manual/applications/indexes/) [^1] 2. **模式设计** - 嵌入式文档 vs 引用式关联 - 分桶模式(Bucket Pattern)处理时序数据 #### **第四阶段:高可用与扩展** 1. **复制集(Replica Set)** - 自动故障转移:1个Primary + N个Secondary - 数据冗余:异步复制 2. **分片(Sharding)** - 水平扩展:按分片键(如`user_id`)分布数据 - 集群组件:Mongos、Config Server、Shard --- ### **二、精选学习资源** 1. **官方文档** - [MongoDB中文手册](https://www.mongodb.com/docs/manual/):最权威的入门到进阶指南 [^1] - 交互式教程:[MongoDB University](https://learn.mongodb.com/)(免费课程) 2. **中文实战教程** - [《MongoDB实战精解》](https://item.jd.com/12693972.html):模式设计+性能优化案例 - 视频课程:[B站MongoDB大师课](https://www.bilibili.com/video/BV18f4y1R7pk)(索引与集群配置演示) 3. **工具与社区** - 图形化工具:[MongoDB Compass](https://www.mongodb.com/products/compass) - 问题解决:[Stack Overflow MongoDB板块](https://stackoverflow.com/questions/tagged/mongodb) --- ### **三、学习建议流程** ```mermaid graph LR A[基础概念] --> B[CRUD操作] B --> C[聚合管道] C --> D[索引优化] D --> E[模式设计] E --> F[复制集/分片] ``` > 提示:先通过官方交互教程实践基础操作,再结合项目需求深入学习特定模块[^2][^3]。 --- ### 常见问题解答 **Q:如何快速迁移SQL数据到MongoDB?** A:使用`mongoimport`工具或[数据迁移指南](https://www.mongodb.com/docs/database-tools/mongoimport/) **Q:事务支持如何?** A:v4.0+支持多文档ACID事务,但需注意性能影响(参考[事务文档](https://www.mongodb.com/docs/manual/core/transactions/)) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值