MongoDB的简单使用

简介: MongoDB的简单使用

数据库操作

MongoDB 创建数据库

show dbs   查看所有数据库
db  查看当前数据库
use DATABASE_NAME   不存在则创建,否则切换
db.dropDatabase()  删除当前数据库

MongoDB 创建集合

show collections   查看集合
show tables    查看集合
db.createCollection(name, options)  创建集合,MongoDB 会自动创建集合
db.COLLECTION_NAME.drop()  删除集合

文档操作

db.collection.insert(document)  插入文档
db.collection.insertOne()  插入一条文档数据
db.collection.insertMany()  插入多条文档数据
db.collection.save(document)    替换文档
db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)  更新文档
db.collection.updateOne() 更新单个文档
db.collection.updateMany() 更新多个文档
如: db.collection.update({"name": "tom"}, {$set:{"name": "Tom"}})
db.collection.remove(
   <query>,
   <justOne>
)  删除文档
db.col.remove({})  删除所有 类似 SQL 的 truncate 命令
deleteOne() 和 deleteMany()

eg:

db.getCollection('table_name').insertMany([
  {name: "摄影摄像",category_id: "6"},
  {name: "医疗健康",category_id: "14"},
  {name: "体育运动",category_id: "8"},
])

查询语句

db.collection.find()  查询文档
db.collection.find().pretty()  格式化
Where 语句比较:
等于(=)  {<key>:<value>} 
小于(<)  {<key>:{$lt:<value>}}  
小于或等于(<=)   {<key>:{$lte:<value>}} 
大于(>)  {<key>:{$gt:<value>}}  
大于或等于(>=)   {<key>:{$gte:<value>}} 
不等于(!=) {<key>:{$ne:<value>}}
AND 条件
db.col.find({key1:value1, key2:value2}).pretty()
OR 条件
db.col.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
).pretty()
Limit() 方法 指定数量的数据记录
db.collection.find().limit(NUMBER)  
Skip() 方法  跳过指定数量的数据
db.collection.find().limit(NUMBER).skip(NUMBER) 
sort()方法  排序  
 1 升序排列,-1 降序排列
db.collection.find().sort({KEY:1})

其他操作

创建索引   background:true 的选项,让创建工作在后台执行
db.collection.ensureIndex({KEY:1})
聚合
db.collection.aggregate(AGGREGATE_OPERATION)
$type 操作符
MongoDB复制
将数据同步在多个服务器的过程
mongodb各个节点常见的搭配方式为:一主一从、一主多从
分片集群
备份(mongodump)与恢复(mongorestore)
监控 mongostat  mongotop
数据库引用{ $ref : , $id : , $db :  }

$where两个字段比较

db.collection.find({
    "$where": "this.fields1 == this.fields2"
}).limit(10);
相关文章
|
网络协议 Java
【工具】Mermaid + 大模型画流程图
最近看面试文章关于TCP三次握手和四次挥手的文章,时常会看到有类似的图去描述这样的过程。当然觉得这样的图还是蛮规范的,属于流程图的一种,是否有工具可以自动生成呢?但没有细想,昨天刷V2EX看到也有老哥发出了这样的问题。于是顺着评论区大佬的回答,我GET到了一个工具Mermaid 这里三次握手的图取自小林coding的文章
2434 0
|
编解码 运维 负载均衡
envoy代理转发与L5 Cluster 负载均衡
envoy代理转发与L5 Cluster 负载均衡
737 0
envoy代理转发与L5 Cluster 负载均衡
|
缓存 JavaScript
vue 页面缓存 keep-alive(含配置清除页面缓存 exclude,局部缓存,动态缓存,路由控制缓存 $route.meta.keepAlive)
vue 页面缓存 keep-alive(含配置清除页面缓存 exclude,局部缓存,动态缓存,路由控制缓存 $route.meta.keepAlive)
2559 0
|
云安全 安全 网络安全
|
2天前
|
JavaScript API iOS开发
DeepSeek Harness下载、安装、配置一篇搞定(2026整理,送常用插件)
DeepSeek Harness(DSH)是DeepSeek于2026年开源的MIT协议AI Agent框架,支持插件化组装模型、工具、沙箱与UI,兼容主流大模型。本文提供免Node.js的桌面端安装包(Win/macOS),含详细图文教程及热门插件推荐。
|
16天前
|
JSON 程序员 数据格式
最新版Notepad++下载、安装、配置保姆级教程(附官网安装包)
Notepad++ 是一款免费开源、轻量快速的 Windows 文本编辑器,支持多标签、语法高亮、代码折叠与宏录制,体积小、启动快、资源占用低,兼容 x64/x32/ARM 架构,是程序员和文字工作者的高效利器。
3968 1
|
9天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
2059 2
|
15天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
2612 46
|
3天前
|
iOS开发 Docker MacOS
【2026实测】Docker Desktop下载、安装、汉化、配置教程(附官网安装包)
Docker Desktop 是 Docker 官方推出的桌面容器管理工具,集成引擎、CLI、图形界面与 Kubernetes,支持 Win/macOS/Linux。2026 最新版 4.88.1 强化 ARM 原生运行、镜像加速及资源可视化,附中文汉化与国内镜像配置指南。
528 1

热门文章

最新文章