MongoDB 入门基础详解

本文详细介绍了MongoDB的基本概念和操作,包括数据库、集合、文档、索引等,以及常用的增删改查操作,如等值查找、模糊匹配、排序、统计和分页。还讲解了子文档查询、更新修改器、批量写入和索引创建等高级特性,是MongoDB入门学习的全面指南。
摘要由CSDN通过智能技术生成

MongoDB是文档型数据库, 与传统关系型数据库有一些区别

概念关系

database 数据库
collection 集合相当于表
docment 文档 相当于行
index 索引
唯一键
mongodb不支持多个集合连接,即是 table join不支持

mongodb 支持多种数据类型

例如:

null 表示空或者不存在的字段
字符串
日期
布尔
数值
正则表达式
数组
对象id (objectID)

一个mongodb中可以建立多个数据库。

"show dbs" 命令可以显示所有数据库的列表

"db" 命令可以显示当前数据库对象或集合

"use"命令,可以连接到一个指定的数据库

文档是一个键值(key-value)对(即BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型

最大BSON文档大小为16M字节

_id字段始终是文档中的第一个字段


mongo命令行工具
  1. --help 显示命令行选项
  2. --nodb 在mongo不连接数据库的情况下启动shell。
  3. --shell 允许命令 js
默认全局命令
1. `help`	显示帮助。
2. `db.help()`	显示数据库方法的帮助。
3. `db.<collection>.help()`	显示有关集合方法的帮助。collection可以是现有的集合或不存在的集合的名称。
4. `show dbs`	  服务器上所有数据库的列表。根据用户权限返回不同的值。
5. `use <db>`	切换当前数据库到<db>
6. `show collections`	当前数据库的所有集合的列表。
7. `show users`	当前数据库的用户列表。
8. `show roles`	当前数据库的所有角色列表,包括用户定义和内置角色。
9. `show profile`	花费1毫秒或更长时间的五个最近的操作
10. `show databases`	所有可用数据库的列表。根据用户权限返回不同的值。
11. `load()`	执行JavaScript文件
database 数据库层命令
1. `db.auth()`	用户身份验证。
2. `db.collection.stats()	` 查看文档的一些信息, 例如填充因子
3. `coll = db.<collection>`	将当前数据库中的特定集合设置为变量 coll, 相当于取别名

​		例如: 对myCollection使用变量执行操作, coll  =  db.myCollection,  可以使用别名		调用 coll.find()

3. `db.collection.find()	` 查找集合中的所有文档并返回游标。
4. `db.collection.insertOne()`	将新文档插入集合中。
5. `db.collection.insertMany()`	将多个新文档插入集合中。
6. `db.collection.updateOne()`	更新集合中的单个现有文档。
7. `db.collection.updateMany()`	更新集合中的多个现有文档。
8. `db.collection.save()`	插入新文档或更新集合中的现有文档。
9. `db.collection.deleteOne()`	从集合中删除单个文档。
10. `db.collection.deleteMany()`	从集合中删除文档。
11. `db.collection.drop()`	完全删除或部分删除集合。
12. `db.collection.remove()`	完全删除或部分删除集合。
13. `db.collection.createIndex()`	如果索引不存在,则在集合上创建新索引; 否则,操作无效。
14. `db.getSiblingDB()`	使用此相同连接返回对另一个数据库的引用,而不显式切换当前数据库。这允许跨数据库查询。

增删改查

新增:

db.collection.insert()

db.collection.insertOne() 
db.collection.insertMany()

在插入文档时,如果collection不存在则会新建

新建操作默认情况下,如果没有_id 则会创建一个_id

下面的方法也可能插入新的文档:

db.collection.update() 与参数upsert: true一起使用
db.collection.updateOne()与参数upsert: true一起使用
db.collection.updateMany()与参数upsert: true一起使用
db.collection.findAndModify()与参数upsert: true一起使用
db.collection.findOneAndUpdate()与参数upsert: true一起使用
db.collection.findOneAndReplace()与参数upsert: true一起使用
db.collection.save()
db.collection.bulkWrite()

例如:

// 插入一个数据
db.inventory.insertOne(
   { item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值