首页 > 数据库 >MongoDB 增删改查 常用sql总结

MongoDB 增删改查 常用sql总结

时间:2022-12-22 11:12:28浏览次数:54  
标签:name MongoDB db update collection sql test 改查 my

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

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()

 

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/

 

标签:name,MongoDB,db,update,collection,sql,test,改查,my
From: https://www.cnblogs.com/zjdxr-up/p/16997963.html

相关文章

  • MySql索引下推知识分享
    作者:刘邓忠Mysql是大家最常用的数据库,下面为大家带来mysql索引下推知识点的分享,以便巩固mysql基础知识,如有错误,还请各位大佬们指正。1什么是索引下推索引下推(IndexCondit......
  • 使用 MongoDB 访问数据
    本指南将引导您完成使用过程春季数据MongoDB​构建一个存储数据并从中检索数据的应用程序蒙戈数据库,一个基于文档的数据库。您将构建什么您将使用SpringDataMongoDB将......
  • mysql 字段名为 timestamp ,不让转义
    select ip_type'IP类型', timestamp'数据填报时间'from ( select d.id, if(d.ip_type=0, 'IP', 'IP段')ip_type, d.timestamp, (CASE d.visibl......
  • postgresql jsonb
    准备测试数据DROPTABLEIFEXISTS"tbl";createtabletbl(idint,jsjsonb);createindexidx_tbl_1ontblusinggin(jsjsonb_path_ops);createindexidx......
  • postgresql jsonb + 索引 + 分区 + 测试
    --创建表DROPTABLEIFEXISTStba;CREATETABLEtba(idserial,peaktempint,jsjsonb,logdatedatenotnull)PARTITIONBYRANGE(logdate); --设置主键......
  • 生产环境 MSSQL 核心数据库架构调整
    1.整改示意图2.环境说明DNSIP用途操作系统备注ClusterVIP192.168.0.*服务器群集IPWindowsServer2019DataCenterSQLCluster192.168.0.127数据库群集IPWindowsServer2019......
  • 一个MySQL双引号把我坑惨了!
    一、前言 最近经常碰到开发误删除误更新数据,这不,他们又给我找了个麻烦,我们来看下整个过程,把我坑得够惨。 二、过程 由于开发需要在生产环节中修复数据,需要执行120......
  • MySQL8.0新特性--基于Write Set并行复制
    复制简介MySQL早期只有单线程复制,即IO线程接收master的binlog,并写入本地的relaylog中,SQL线程负责从relaylog中服务event并进行apply。当主库的写入压力较大时,备库的IO线......
  • MySQL8.0新特性--Clone Plugin克隆
    ClonePlugin简介8.0.17引入cloneplugin,允许从本地或者远程的MySQL中克隆数据克隆的数据包括schema、表、表空间、元数据等等,克隆的数据是一个完整的数据目录,插件可以使......
  • MySQL8.0新特性--使用SQL管理undo表空间
    8.0之前的undotablespaces管理InnoDB的undolog最主要是存储回滚数据,是实现MVCC的重要组件;innodb的一个rollbacksegment分为1024个undologsegment,即最大支持1024个并......