mongoDB常用的操作 -(文档)

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: mongoDB常用的操作 -(文档)

mongoDB常用的操作 -(文档)

1). 新增文档(Document)

  • 单条插入文档
    语法:
    db.集合.insert()
    示例:
#选项当前集合
use mongo_db_dev;
#插入一条Document
db.myColl.insert({x:700,Y:700});
#插入多条Document
db.myColl.insert([{x:500,Y:500},{x:600,Y:600},{x:700,Y:700}]);
  • 语法:
    db.集合.insertOne()
    示例:
db.myColl.insertOne({x:500,y:500})
  • 语法:
    db.集合.save()
    示例:
db.myColl.save([{name:'hen',age:18,sex:'m'},{'name':'bread','age':18,'sex':'w'}])或db.myColl.save({name:'hen',age:18,sex:'m'})
  • 批量插入文档
    语法:
    db.集合.insert_many(result)
    示例:
db.myColl.insertMany([{x:100,y:100},{x:200,y:200},{x:300,y:300}])

2). 修改文档(Document)

  • update更新
    语法:
    db.集合.update(criteria,objNew,upsert,multi)
    参数说明:
参数 说明
criteria 查询条件,类似关系型数据库的update语句内where后面的内容。
objNew update的对象和一些更新的操作符(如、 、inc等),也可以理解为关系型数据库update语句内set后面的内容。
upsert 如果不存在update的记录,是否插入objNew这个新的document。true为插入,默认是false,不插入。
multi 默认是false,只更新找到的第一条记录。如果为true,按条件查出来的多条记录全部更新。
  • 示例:
#update更新
db.myColl.update({"cnname":'goyeer'},{$set:{"age":"50",'Y':1000,y1:'Hello World'}})
• 1
• 2
  • save更新
    语法:
    db.collection.save(obj)
    参数说明:

obj:要更新的纪录,只能试单挑纪录,如果collection没有存在与obj一样的id,则添加一条记录,否则更新

  • 更新操作符:
操作符 用法
$inc {$inc:{field:value}},对一个数字字段的某个field增加value
$set {$set:{field:value}},类似于SQL语法中“set field=value”
$unset {$unset:{field:1}},删除字段,类似于SQL语法中删除列
$push {$push:{field:value}},把value追加到field里。field一定是数组类型,如果field不存在,会新增一个
$pushAll {KaTeX parse error: Expected 'EOF', got '}' at position 25: …ld:value_array}}̲,用法同push一样,只是$pushAll一次可以追加多个值到一个数组字段内
$addToSet {$addToSet:{field:value}},加一个值到数组内,而且只有当这个值不在数组内才增加
$pop {$pop:{field:[1,-1]}},删除数组内的一个值,-1:删除第一个,1:删除最后一个
$pull {$pull:{field:value}},从数组filed内删除一个等于value的值
$pullAll {KaTeX parse error: Expected 'EOF', got '}' at position 28: …ld:value_array}}̲,用法同pull一样,可以一次删除数组内的多个值
$rename {$rename:{old_field_name:new_field_name}},完成字段的重命名
  • 示例:
#更新Save
db.myColl.save({'_id':ObjectId("646b112a5b250000fc000b82"),cnname:'cnname01',x:100})

3). 删除文档(Document)

  • remove删除文档
    语法:
db.collection.remove(<query>,
{
justOne:<boolean>,
writeConcern: <document>
})

参数说明:

参数 说明
query (可选)删除的文档的条件。
justOne (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern (可选)抛出异常的级别。
  • 示例:
db.myColl.remove({'_id':ObjectId("646b112a5b250000fc000b82")})
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
22天前
|
JSON NoSQL MongoDB
实时计算 Flink版产品使用合集之要将收集到的 MongoDB 数据映射成 JSON 对象而非按字段分割,该怎么操作
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4天前
|
NoSQL MongoDB 数据库
MongoDB的CURD(增删改查操作)
MongoDB的CURD(增删改查操作)
7 0
|
16天前
|
NoSQL 关系型数据库 MongoDB
实时计算 Flink版操作报错之使用mongodb cdc时报错Command failed with error 40573,是什么导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
17天前
|
NoSQL MongoDB 数据库
通过优化索引以消除 MongoDB 中的 "查询目标已超过1000个扫描对象/返回的文档数" 警告
MongoDB NoSQL数据库在处理复杂查询时可能出现“查询目标已超过1000个扫描对象/返回的文档数”警告。文章分析了该问题,展示了一个示例集合和相关索引,并提供了查询示例。通过`explain`命令发现查询未有效利用索引。解决方案是遵循ESR规则,创建新索引从而优化查询并消除警告。
48 1
|
24天前
|
存储 NoSQL 数据管理
【MongoDB 专栏】MongoDB 文档模型详解
【5月更文挑战第10天】MongoDB 是一种流行的 NoSQL 数据库,以其灵活的文档数据模型著称。文章介绍了文档的基本概念、结构及操作,包括插入、查询、更新和删除。文档特点是灵活且可扩展,适合存储不同结构的数据。优势在于简化数据建模、提升开发效率并适应动态数据。应用场景包括用户信息、日志记录和电商数据管理。但需注意数据一致性和文档大小对性能的影响。理解文档模型有助于高效利用 MongoDB。
【MongoDB 专栏】MongoDB 文档模型详解
|
24天前
|
NoSQL 数据处理 MongoDB
MongoDB查询操作深度剖析
【4月更文挑战第30天】本文深入探讨了MongoDB查询操作,包括查询语法、优化及高级技巧。使用`find()`方法进行查询,如`db.users.find({ age: { $gt: 25 } })`找年龄大于25的用户。优化查询性能涉及创建索引、使用复合索引和避免全表扫描。高级查询涵盖聚合管道、文本搜索和地理空间查询,提供复杂数据处理和地理位置查询能力。理解并应用这些知识能提升MongoDB的使用效率和应用性能。
|
24天前
|
存储 NoSQL MongoDB
MongoDB数据模型与文档结构详解
【4月更文挑战第30天】MongoDB是一个基于文档的NoSQL数据库,其数据模型由文档(类似键值对集合,支持嵌套和数组)、集合(无需预定义结构的文档组)和数据库(包含集合的组织单元)构成。文档使用BSON格式,支持多种数据类型。在设计数据模型时,应注意避免过度嵌套,利用索引优化查询,并考虑数据生命周期。MongoDB通过引用处理文档间关系,提供灵活性以适应复杂数据结构。
|
24天前
|
存储 NoSQL Go
【Go语言专栏】Go语言中的MongoDB操作与NoSQL应用
【4月更文挑战第30天】本文介绍了Go语言中操作MongoDB的方法和NoSQL应用的优势。MongoDB作为流行的NoSQL数据库,以其文档型数据模型、高性能和可扩展性被广泛应用。在Go语言中,通过mongo-go-driver库可轻松实现与MongoDB的连接及插入、查询、更新和删除等操作。MongoDB在NoSQL应用中的优点包括灵活的数据模型、高性能、高可用性和易于扩展,使其成为处理大规模数据和高并发场景的理想选择。
|
24天前
|
分布式计算 DataWorks NoSQL
DataWorks产品使用合集之DataWorks 集成工具是否支持对 MongoDB 的单字段更新操作
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
45 0