MongoDB 增删改查 常用sql总结

mongodb,删改,常用,sql,总结 · 浏览次数 : 533

小编点评

**MongoDB 文档操作 API** **切换数据库** ```python db.switch_to("my_new_database") ``` **查看所有文档** ``` db.show_tables() ``` **创建表** ```python db.test.create_collection("my_test_collection") ``` **插入数据** ```python db.test.insert_one({"_id": "520", "name": "xiaoming"}) ``` **新增修改数据** ```python upsertdb.my_test_collection.update( {"name": "test"}, {"$set": {"url": "www.haicoder.net"}}, {"upsert": True}, ) ``` **数组字段增加、移除元素** ```python db.my_test_collection.insert_one({"name": "haicoder", "course": ["c++", "python", "java"]}) db.my_test_collection.update( {"name": "haicoder"}, {"$push": {"course": "golang"}}, {"upsert": True}, ) db.my_test_collection.update( {"name": "haicoder"}, {"$pull": {"course": "java"}}, {"upsert": True}, ) ``` **根据条件修改** ```python db.my_test_collection.update( {"_id": ObjectId("5f62d74744c83190d8f6c3be")}, {"$set": {"name": "HAICODER"}}, {"multi": True}, ) ``` **添加字段或移除字段** ```python db.my_test_collection.update( {"_id": ObjectId("5f62d74744c83190d8f6c3be")}, {"$set": {"activeTime": 1669305600000}}, {"multi": True}, ) db.qy_farmland.update( {"_id": 13320}, {"$set": {"status": "disable"}}, {"upsert": False, "multi": True}, ) ``` **删除指定元素** ```python db.my_test_collection.remove({"name": "golang"}) ``` **删除文档** ```python db.my_test_collection.delete() db.haicoder.delete({"url": "www.haicoder.net"}) ``` **查询 SQL 总结** ```python # 此链接指向 MongoDB 的文档摘要页面 sql_summary = "https://www.cnblogs.com/zjdxr-up/p/10698505.html" ``` **MongoDB 操作 API** * `db.switch_to()` 用于切换数据库。 * `db.show_tables()` 用于查看所有文档。 * `db.test.create_collection()` 用于创建表。 * `db.test.insert_one()` 用于插入单个文档。 * `upsertdb.my_test_collection.update()` 用于执行更新操作,并使用 `upsert` 参数进行插入。 * `db.my_test_collection.update()` 用于执行更新操作,并使用 `$push` 和 `$pull` 用于添加或删除元素。 * `db.my_test_collection.update()` 用于根据条件更新文档。 * `db.my_test_collection.insert_one()` 用于插入单个文档。 * `db.my_test_collection.remove()` 用于删除单个文档。 * `db.my_test_collection.drop()` 用于删除单条文档。

正文

本文为博主原创,转载请注明出处:

1.切换到指定数据库:如果不存在则创建

use database

 

2.查看所有文档

show tables

show collections

 

3.创建表

#创建文档
db.createCollection("my_test_collection")

#如果不存在则创建,存在则新增插入
db.test.insert({"_id":"520","name":"xiaoming"}) 

 

4.插入数据

#插入一条数据
db.test.insert({"_id":"520","name":"xiaoming"})

#插入多条数据
db.my_test_collection.insertMany([{"name":"HaiCoder", "url":"www.haicoder.net"}, {"name":"C++", url:"https://haicoder.net/cpp/cpp-tutorial.html"}])

 

5.新增修改数据 upsert

db.my_test_collection.update({"name":"test"}, {"$set":{"url":"www.haicoder.net"}}, {"upsert":true})

  MongoDB 的 update 方法的第三个参数是 upsert,这个参数是个布尔类型,默认是 false。当它为 true 的时候,update 方法会首先查找与第一个参数匹配的记录,再用第二个参数更新之,如果找不到与第一个参数匹配的的记录,就插入一条。

 

6.数组字段增加、移除元素

## 新增数组数据
db.my_test_collection.insert({"name":"haicoder", "course":["c++","python","java"]})

## 更新数组数据,新增
db.my_test_collection.update({"name":"haicoder"}, {"$push":{"course" : "golang"}})

## 更新数组数据,删除
db.my_test_collection.update({"name":"haicoder"}, {"$pull":{"course" : "java"}})

 

7.根据条件修改

db.my_test_collection.update({"_id" : ObjectId("5f62d74744c83190d8f6c3be"}, {"$set":{"name" : "HAICODER"}})

  这个只会更新一条数据,如果要修改多条需要设置 multi 为true

db.my_test_collection.update({"_id" : ObjectId("5f62d74744c83190d8f6c3be")}, {"$set":{"name" : "HAICODER"}}, { multi: true })

  在 MongoDB 中,通过 update 更新记录时,其中的 update 字段,如果我们不指定 set 设置器,那么默认就是将整个匹配到的文件进行替换,如果指定了 set,那么就是将该字段进行替换,如果该字段不存在,则插入该字段。

  因此,我们在使用 update 更新 mongDB 的记录时,如果仅仅是想更新某个字段,而不是对整个文档进行替换,那么一定不能忘记 set 设置器,否则,数据就会丢失。

 

8.添加字段或移除字段

#对文档my_test_collection 所有数据添加 activeTime 并设置初始值
db.getCollection('my_test_collection').update({},{$set:{activeTime:1669305600000}},{multi:true});

# 给某一条添加字段
db.qy_farmland.update({"_id": 13320},{"$set":{"status":"disable"}},  false, true);

# 去除某一字段
db.qy_farmland.update({"_id": 13438},{"$unset":{"status":"disable"}},  false, true);

 

9.删除指定元素

db.my_test_collection.remove({"name" : "golang"})

  remove 删除符合条件的单条记录

db.my_test_collection.remove({"url" : "www.haicoder.net"}, {justOne:true})

 

10.删除文档

db.my_test_collection.drop()

  删除单条记录 

db.haicoder.remove({"url" : "www.haicoder.net"}, {justOne:true})

 

11.查询sql总结

  https://www.cnblogs.com/zjdxr-up/p/10698505.html

 

12. MongoDB 官网操作api

     https://www.mongodb.com/docs/v3.2/reference/operator/update-array/

 

与MongoDB 增删改查 常用sql总结相似的内容:

MongoDB 增删改查 常用sql总结

本文为博主原创,转载请注明出处: 1.切换到指定数据库:如果不存在则创建 use database 2.查看所有文档 show tables show collections 3.创建表 #创建文档 db.createCollection("my_test_collection") #如果不存在则创

[转帖]Linux遇到一个内存过高的报警——释放buff/cache

前些天一直受到内存报警,过一段时间就会恢复。由于开发工作有些多,就一直没理它,但是最近几天开始有些频繁了。虽然不影响业务,但是天天报警,还是让人提心吊胆的。因此就抽了一个上午的时间去解决一下这个问题。 排查问题 这台机器安装的是mongodb,因为最近业务增加,内容使用增加是正常的,但是实际的占用内

MongoDB安装、基础操作和聚合实例详解

虽然MongoDB这些年很流行,但笔者之前没研究过,现在有需求研究这类NoSQL的数据库,是为了验证其是否可被替换。 MongoDB是很轻量的文档数据库,简单测试也懒得专门准备虚拟机环境了,直接在macOS上安装测试下其基础功能。 1.使用 Homebrew 安装 MongoDB 2.启动/停止 M

MongoDB安全加固,防止数据库攻击删除勒索威胁

前言: 今天发现前段时间自己搭建的一个系统的MongoDB数据找不到了,觉得很奇妙,然后登上MongoDB数据库发现多了一个名为READ__ME_TO_RECOVER_YOUR_DATA的数据库,里面还有一个README的集合里面包含了下面描述的勒索信息。没错我的MongoDB数据库被攻击了,不过还

MongoDB从入门到实战之MongoDB简介

前言 相信很多同学对MongoDB这个非关系型数据库都应该挺熟悉的,在一些高性能、动态扩缩容、高可用、海量数据存储、数据价值较低、高扩展的业务场景下MongoDB可能是我们的首选,因为MongoDB通常能让我们以更低的成本解决问题(包括学习、开发、运维等成本)。接下来的一个月博主将会从基础出发,编写

MongoDB从入门到实战之MongoDB快速入门

前言 上一章节主要概述了MongoDB的优劣势、应用场景和发展史。这一章节将快速的概述一下MongoDB的基本概念,带领大家快速入门MongoDB这个文档型的NoSQL数据库。 MongoDB从入门到实战的相关教程 MongoDB从入门到实战之MongoDB简介👉 MongoDB从入门到实战之Mo

MongoDB从入门到实战之Docker快速安装MongoDB

前言 在上一篇文章中带领带同学们快速入门MongoDB这个文档型的NoSQL数据库,让大家快速的了解了MongoDB的基本概念。这一章开始我们就开始实战篇教程,为了快速把MongoDB使用起来我将会把MongoDB在Docker容器中安装起来作为开发环境使用。然后我这边MongoDB的可视化工具用的

MongoDB从入门到实战之MongoDB工作常用操作命令

前言: 上一章节我们快速的在Docker容器中安装了MongoDB,并且通过Navicat MongoDB可视化管理工具快速的连接、创建数据库、集合以及添加了文档数据源。这一章节我们主要是了解一下在日常工作中MongoDB一些常用的操作命令。 MongoDB从入门到实战的相关教程 MongoDB从入

MongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(1)-后端项目框架搭建

前言: 前面的四个章节我们主要讲解了MongoDB的相关基础知识,接下来我们就开始进入使用.NET7操作MongoDB开发一个ToDoList系统实战教程。本章节主要介绍的是如何快熟搭建一个简单明了的后端项目框架。 MongoDB从入门到实战的相关教程 MongoDB从入门到实战之MongoDB简介

MongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(2)-Swagger框架集成

Swagger是什么? Swagger是一个规范且完整API文档管理框架,可以用于生成、描述和调用可视化的RESTful风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。