博客
关于我
MongoDB - 库、集合、文档(操作 + 演示 + 注意事项)
阅读量:795 次
发布时间:2023-02-09

本文共 2132 字,大约阅读时间需要 7 分钟。

MongoDB 指南

一、MongoDB 简介

1.1 简介

MongoDB 是一种分布式文件存储数据库,由 C++ 编写,专为 Web 应用提供可拓展的高性能数据存储解决方案。它介于传统关系数据库和 NoSQL 数据库之间,支持灵活的数据结构,类似于 JSON 的 BSON 格式,能够存储复杂数据类型。MongoDB 的查询功能强大,语法类似于面向对象的查询语言,能够实现类似关系数据库单表查询的绝大部分功能,同时支持数据索引。

1.2 应用场景

MongoDB 适用于以下场景:

  • 游戏应用:用于存储用户装备、积分等数据,直接以内嵌文档形式存储,方便查询和更新。
  • 物流数据:用于存储订单状态更新,通过数组形式一次查询读取所有变更。
  • 社交应用:用于存储用户信息和朋友圈数据,支持地理位置查询。
  • 视频直播:用于存储用户信息和礼物信息。
  • 大数据应用:作为云存储系统,支持数据提取和分析。

1.3 MongoDB 的优势

MongoDB 的内存映射机制提高了 IO 操作效率,数据模型的灵活性减少了关联性,分布式集群支持了大规模并发请求。相比 MySQL,MongoDB 在读写性能上更具优势。

1.4 数据库概念

  • Database(库):类似于 MySQL 的数据库概念,用于隔离不同应用数据。
  • Collection(集合):类似于表,支持灵活数据存储,但无固定结构。
  • Document(文档):类似于数据库表中的记录,支持丰富字段和数据类型。

二、库操作

2.1 查看所有库

show databases;show dbs 命令可列出所有库,默认数据库为 test

2.2 创建并使用数据库

use dbname; 创建并切换到指定数据库。

2.3 查看当前数据库

默认连接的数据库为 test,可以使用 db 命令查看当前数据库。

2.4 删除数据库

db.dropDatabase(); 删除当前数据库。

三、集合操作

3.1 创建集合

db.createCollection('集合名', [options]); 可选参数包括 cappedsizemax

3.2 查看库中集合

show collections;show tables; 命令可查询集合。

3.3 删除集合

db.集合名称.drop(); 删除指定集合。

四、文档操作

4.1 插入文档

单条文档:
db.集合名称.insert({"name": "cyk", "age": 20});
多条文档:
db.集合名称.insertMany([ { "name": "cyk0", "age": 20 }, { "name": "cyk1", "age": 20 } ]);

4.2 删除文档

db.集合名称.remove(query, {justOne: true}); 可选参数包括 queryjustOne

4.3 更新文档

db.集合名称.update(query, update, {upsert: true, multi: true}); 可选参数包括 queryupdateupsertmulti

4.4 查询文档

db.集合名称.find(query, projection); 查询条件和投影操作可通过 pretty() 格式化显示。

五、查询优化

5.1 基本查询

db.集合名称.find(query); 可选投影操作。

5.2 查询条件示例

  • db.user.find({name: "cyk0"})
  • db.user.find({_id: {$lt: 5}})
  • db.user.find({age: {$ne: 5}})
  • db.user.find({$or: [{name: "cyk1"}, {name: "cyk2"}]})
  • db.user.find({likes: /钢/})
  • db.user.find().sort({_id: -1})
  • db.user.find().skip(3).limit(3);
  • db.user.distinct('name');
  • db.user.find({_id: {$gt: 5}}, {name: 1});

5.3 模糊查询

通过正则表达式实现模糊查询。

5.4 排序和分页

db.user.find().sort({_id: -1});
db.user.find().skip(3).limit(3);

5.5 去重

db.user.distinct('name');

5.6 指定字段返回

db.user.find({_id: {$gt: 5}}, {name: 1});
db.user.find({_id: {$gt: 5}}, {name: 0});

六、$type 操作符

$type 操作符用于基于 BSON 类型检索数据。支持数据类型包括 String、Integer、Boolean、Double、Array、Timestamp、Object、Null、Symbol、Date、ObjectId、Binary Data、Code、Regular Expression 等。

转载地址:http://gdffk.baihongyu.com/

你可能感兴趣的文章
mongo - 正常关闭服务
查看>>
mongo import 提示`fields cannot be identical: '
查看>>
mongo 去重
查看>>
MongoDB
查看>>
MongoDB - 库、集合、文档(操作 + 演示 + 注意事项)
查看>>
MongoDB - 整合 SpringBoot 操作全流程
查看>>
MongoDB - 索引底层原理和使用,聚合的使用(案例 + 演示)
查看>>
MongoDB 3.0 增删改查及聚合操作,pymongo
查看>>
mongoDB 3.0 安全权限访问控制
查看>>
MongoDB Compass connect ECONNREFUSED 127.0.0.1:27017 如何解决
查看>>
mongodb linux安装
查看>>
MongoDB MapReduce使用
查看>>
MongoDB Replica Sets + Sharding 实战
查看>>
Mongodb sharding转换一个副本集为分片集群
查看>>
mongodb 与 c++ 的配合使用
查看>>
MongoDB 分片集群技术
查看>>
My first makefile to compile multiple C files
查看>>
MongoDB 启动基于角色的登录认证功能
查看>>
mongodb 命令行操作
查看>>
mongodb 和 mongoose 初探
查看>>