一、update()命令
db.collection.update( criteria,objNew,upsert,multi )
criteria:update的查询条件,类似sql update查询内where后面的
objNew :update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert :这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi :mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
例:
db.app.update({"downlaod_count":2},{$set:{"name":"OK"}},false,true);
db.app.update({"download_count":{$gt:1}},{$set:{"name":"OK"}}); 只更新了第一条记录
db.app.update({"download_count":{$gte:3}},{$set:{"name":"OK"}},false,true ); 全更新了
db.app.update({"download_count":{$lt:4}},{$set:{"name":"OK"}},true,false ); 只加进去了第一条
db.app.update({"download_count":{$lte:5}},{$set:{"name":"OK"}},true,true ); 全加进去了
db.app.update({"download_count":{$in:[1,2,3]}},{$inc:{"download_count":1}},false,true );全更新了
db.app.update({"download_count":{$nin:[1,2,3]}},{$inc:{"download_count":1}},false,false );只更新了第一条
二、mongodb的更新操作符:
1) $inc
用法:{ $inc:{field:value}} 对一个数字字段field增加value
db.app.update({"id":15},{$inc:{"download_count":1}});
db.app.update({"id":15},{$inc:{"download_count":-1}});
2) $set
用法:{ $set:{field:value}} 相当于sql的set field = value,全部数据类型都支持$set
db.app.update({"id":15},{$set:{"test1":"testv1","name":"testv2","test3":"testv3","test4":"testv4"}});
3) $unset
用法:{ $unset:{field:1}} 删除字段了
db.app.update({"id":15},{$unset:{"test1":1}});
4) $push
用法:{ $push:{field:value}}
把value追加到field里面去,field一定要是数组类型才行,如果field不存在,会新增一个数组类型加进去
db.app.update({"id":15},{$set:{"test1":["aaa","bbb"]}});
db.app.update({"id":15},{$push:{"test1": "ccc"}});
db.app.update({"id":15},{$push:{"name": "ccc"}});
db.app.update({"id":15},{$push:{"test1": ["ddd","eee"]}});
5) $pushAll
用法:{ $pushAll:{field:value_array}}
同$push,只是一次可以追加多个值到一个数组字段内
db.app.update({"id":15},{$pushAll:{"test1": ["fff","ggg"]}});
6) $addToSet
用法:{ $addToSet:{field:value}}
增加一个值到数组内,而且只有当这个值不在数组内才增加。例:
db.app.update({"id":15},{$addToSet:{"test1": {$each:["444","555"]}}});
db.app.update({"id":15},{$addToSet:{"test1": ["444","555"]}});
7) $pop
用法:
删除最后一个值:{ $pop:{field:1}}删除第一个值:{ $pop:{field:-1}}
注意,只能删除一个值,也就是说只能用1或-1,而不能用2或-2来删除两条。mongodb 1.1及以后的版本才可以用,例:
8) $pull
用法:$pull:{field:value}}
从数组field内删除一个等于value值。例:
> db.app.update({"id":15},{$pull:{"test1": "ggg"}});
9) $pullAll
用法:{ $pullAll:{field:value_array}}
同$pull,可以一次删除数组内的多个值
db.app.update({"id":15},{$pullAll:{"test1": [ "ccc","fff" ]}});
9) $rename
用法:{ $rename:{field:new_filed}}
重命名字段
db.app.update({"id":15},{$rename:{"test1":"bat" }});
相关推荐
以下是一些关于MongoDB常用SQL操作的关键知识点: 1. **数据模型**:MongoDB基于JSON(JavaScript Object Notation)格式的文档存储数据,这使得它能够存储复杂的数据结构,如嵌套对象和数组。 2. **连接MongoDB**...
在MongoDB中,常用的操作语句可以分为数据定义语言(DDL)和数据操纵语言(DML)。 **DDL操作:** 1. 创建集合(表) - 语法:`db.createCollection("collectionName")` - 实例:创建一个名为`user2`的集合,...
### MongoDB和MySQL常用增删改查语句 #### MongoDB 常用操作 **一、分组统计** 在处理大量数据时,分组统计是非常重要的一个功能。通过使用`$group`聚合阶段,我们可以根据特定字段对数据进行分组,并计算各组的...
本文将深入探讨MongoDB中的一些常用语句,包括删除、查询、批量操作和文档关系管理。 ### 1. 删除语句 在MongoDB中,删除语句主要用于移除集合中的文档。以下是一些常见的删除操作: - `db.collection.deleteOne...
MongoDB 使用C++编写,支持多种操作系统,并提供了丰富的查询语言,类似于面向对象的查询,允许执行类似关系数据库的单表查询操作,还支持建立索引来提升查询效率。此外,MongoDB 支持动态模式,即schema-free,这...
集合名称.updateMany()`,可以指定更新条件和更新操作,如`db.collection.updateOne({name: "jack"}, {$set: {age: 25}})`。 10. **删除集合**: 使用`db.dropCollection("集合名称")`命令可以删除集合,如`db....
本篇文章将对比这两种数据库中常用的操作语句,帮助读者理解和掌握两者之间的差异。 1. 查询数据: - MySQL 使用 `SELECT * FROM user` 获取所有用户信息,而 MongoDB 使用 `db.user.find()`。 - MySQL 的 `...
本文将深入探讨在MongoDB中执行常见操作命令,这些命令对于数据库管理和开发至关重要。 首先,我们来看一下如何查询数据。在MongoDB中,我们可以使用`find()`方法来查找满足特定条件的文档。例如,如果我们想要找到...
2. **数据库操作**:支持对MongoDB的常用操作,如创建、删除数据库和集合,导入导出数据,执行查询语句等。 3. **性能监控**:提供实时的性能指标,帮助分析和优化MongoDB的运行状态。 4. **脚本编辑**:支持编写和...
7. **CRUD 操作**:创建(Create)、读取(Read)、更新(Update)和删除(Delete)是 MongoDB 常用的基本操作。 在 Robo 3T 中,你可以执行以下操作: - **连接到 MongoDB 实例**:输入服务器地址、端口、认证...
动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们可以根据实际需要创建出更加精确和优化的SQL语句。Mabits的动态SQL还允许开发者使用参数化查询,可以防止SQL注入攻击,并增强程序的安全性 学习经常...
Java是常用的编程语言,用于与MongoDB交互,提供了丰富的驱动程序库,如Java MongoDB驱动程序,使得开发人员能够方便地进行数据的存取。 在提供的代码片段中,`MongoDBConfig.java`是Java中连接MongoDB的一个配置类...
下面,我们将深入探讨SQL的基本概念、常用语句以及它们在实际中的应用。 SQL,全称为结构化查询语言,是用于管理关系数据库的标准语言。它主要用于执行以下操作:数据查询、数据更新、数据插入和数据删除。以下是...
这是一个用于MongoDB操作的类,它封装了对MongoDB的基本CRUD(创建、读取、更新、删除)操作,并且提供了一个更加面向对象的接口,使得开发者可以通过更加自然的方式来操作MongoDB。 SpringData MongoDB支持查询...
9. 其他特性:还包括脚本执行、备份与恢复功能,以及自定义工作区以组织和保存常用操作。 MongoDB的客户端选择众多,除了MongoVUE之外,还有诸如Robo 3T(原名Robomongo)、MongoDB Compass、Studio 3T等更现代的...
MongoDB提供了丰富的查询语句,如`find()`用于查找所有匹配的文档,`findOne()`用于找到第一个匹配的文档。例如,查询所有留言: ```php $query = []; $result = $collection->find($query); foreach ($result as $...
Mongostat是一款用于监控MongoDB操作频率的工具,可以帮助我们了解各种操作的发生频率。 - **启动方式**:在终端中运行`mongostat`命令即可启动。 - **结果分析**: - `inserts`:每秒插入次数。 - `query`:每秒...