对数据进行操作时,需要注意,在非关系数据中,同一个字段,可能存了不同类型的数据,所以是否加引号,查询出来的结果可能不一样。另外,条件的key值,可以加引号,也可以直接用名字即可。
1、创建数据库:use runoob
#连接 > mongo 192.168.1.10:27017 > show dbs > exit
2、简单查询(其中test1为集合表名,name为字段名):
db.Collection1.find({ 'name':'liu', 'id':'1' })
3、简单插入:
db.Collection1.insert({ 'name':'gang', 'id':'2' })
4、简单更新(更新该记录所有字段):
//注意这里更新,相当于先delete,再add,即更新后只剩下一个字段name。 //update(查询目标条件, 修改后的值) db.Collection1.update({ 'name':'gang', 'id':'2' }, { 'name':'gang' })
5、简单更新(更新该记录指定字段):
//其中$set可以看做是一个函数 db.Collection1.update( { 'name':'gang' }, {$set:{ 'name':'gang1' }}, false, true )
语句范例:db.table_name.update(where,setNew,issert,multi );
where:类似于sql中的update 语句where后边的查询条件
setNew:类似于sql中update语句中set后边的部分,也就是你要更新的部分
upsert:如果要更新的那条记录没有找到,是否插入一条新纪录,默认为false不插入,true为插入
multi :是否更新满足条件的多条的记录,false:只更新第一条,true:更新多条,默认为false
6、删除:
db.Collection1.remove({ 'name':'gang1' })
7、新建索引:
//这里是联合索引,(1和-1)代表按升序或降序建立索引 db.Collection1.ensureIndex( { 'id': 1, 'name': -1 }, {background: true} )
8、建立唯一索引:
db.Collection1.ensureIndex( {'id':1} , {unique:true} )
9、查询索引:
db.Collection1.getIndexes()
10、删除索引:
db.Collection1.dropIndex("index_name")
11、新建全文索引:
//对字段content建全文索引 db.Collection1.ensureIndex({content:'text'})
12、查询全文索引:
//在content上建立全文索引 db.Collection1.find({ $text:{ $search:"liu" } })
拓展:
1)查询and:条件用逗号隔开即可。
2)查询or:
db.Collection1.find({ $or:[ {'id':'1'}, {'id':'2'} ] })
3)and和or一起使用:
db.Collection1.find({ 'id':{$gt:'1'} , $or:[ {'id':'1'}, {'id':'2'} ] })
4)条件判断(大于、小于等):
//大于($gt)、小于($lt)、大于等于($gte)、小于等于($lte) db.Collection1.find({ 'id':{$gt:1} })
5)返回记录数量:
//取记录的前2个 db.Collection1.find({ 'id':{$gt:'1'} }).limit(2)
6)跳过记录数:
//则先跳过1个记录,再取剩下记录的2个 db.Collection1.find({ 'id':{$gt:'1'} }).limit(2).skip(1)
7)排序:
//排序,1升序,-1降序 db.Collection1.find({ 'id':{$gt:'1'} }).sort({ "id":-1 })
8)聚合(aggregate),主要用于处理数据(诸如统计平均值,求和等),类似sql语句中的 count(*)。
//$group是根据name分组(_id是分组固定值),另外和分组以前使用,还有$avg、$min等。match属于筛选,多个条件用大括号{}分开,例如排序等 //相当于select name, count(*) from Collection1 group by name db.Collection1.aggregate([ {$group : { _id : "$name", num_tutorial : {$sum : 1} first_age : {$first : "$age"} } },{ $match: {"pages": {$gte: 5}} } ])但是,如果你不想分组,就要求记录数怎么办呢,用其他方式解决,比如:
db.Collection1.find({ 'name':'liu' }).count()9)MapReduce:使用 MapReduce 要实现两个函数 Map 函数和 Reduce 函数,Map 函数调用 emit(key, value), 遍历 collection 中所有的记录, 将 key 与 value 传递给 Reduce 函数进行处理。
//示例:通过query条件查询符合的记录,并通过emit中的name进行分组计算出现的次数。find()打印出来数据。 db.Collection1.mapReduce( function() { emit(this.name,1); }, function(key, values) {return Array.sum(values)}, { query:{name:"liu"}, out:"post_total" } ).find()10)全文检索:2.6版本以后默认开启。假如有一个文章表,content字段可以建立一个全文索引,这样就可以全文搜索文章内容了。
db.Collection1.find({ $text:{ $search:"liu" } })但,正确的使用格式应该为(自己测试却报错,等待解决。。。):
db.collection.runCommand( "text",{ search: <string>, //查询条件,例如 filter: <document>, //过滤条件,例filter: { age: { $gt: 10 } } project: <document>, //要返回的字段,例project: { "name": 1 },1返回 limit: <number>, //限制数量,例limit: 2 language: <string> //指定语言(没有中文),例language: "spanish" })另外,假如查询结果集要按相似度排序返回,可使用:
//按相似度排序,并返回socre字段 db.Collection1.find( {$text:{$search:"哈哈哈"}}, {score:{$meta:"textScore"}} ).sort({score:{$meta:"textScore"}})条件非:
//匹配的必须有ttt,但不能包含aaa db.Collection1.runCommand("text",{search:"ttt -aaa"})
相关推荐
MongoDB的一个独特之处在于它不使用传统的SQL语句,而是通过MongoDB Shell来执行各种操作,因此掌握其Shell命令对于使用MongoDB进行开发和维护至关重要。 在MongoDB中,基本的数据单位是文档,文档中的数据是以键值...
在MongoDB中,我们经常使用客户端工具来与数据库进行交互,其中Robo 3T(之前称为Robomongo)是一款非常实用的图形用户界面工具,它提供了Shell命令操作MongoDB数据库的功能。 **1. 打开Shell窗口** 在Robo 3T中,...
6.0 版本以上的mongodb不提供,shell脚本需要自己安装使用
- `startMongoDB.sh`:这是针对Linux环境(如CentOS 7)的Shell脚本,用于启动MongoDB。它可能会包含运行`mongod`命令的代码,可能需要指定配置文件和日志文件路径,并处理必要的权限和环境变量。 请注意,这些...
为了更深入地了解这些概念,你可以查阅DB shell数据操作.doc文档,它应该包含了更详尽的MongoDB操作步骤和示例。通过实践和学习,你将能熟练掌握MongoDB的日常操作,无论是简单的数据管理还是复杂的查询和分析。
在centos7下安装部署mongodb分片+副本集群常用命令整理,内容包含,安装、配置、启动、访问shell终端等命令
7. 脚本支持:内置脚本编辑器,支持MongoDB shell命令,便于执行自动化任务和脚本调试。 8. 数据可视化:将数据以图表形式展示,便于理解和分析,这对于数据报告和决策支持非常有价值。 9. 迁移工具:对于从其他...
3. **脚本支持**:支持JavaScript和MongoDB Shell命令,方便执行脚本和命令操作。 4. **数据导入导出**:支持CSV、JSON、XML等多种格式的数据导入和导出,便于数据迁移和备份。 5. **性能监控**:提供实时的性能指标...
- **脚本执行**:支持MongoDB shell命令和JavaScript脚本的运行,方便执行批量操作。 - **日志查看**:可以查看MongoDB服务器的日志,帮助诊断和解决问题。 - **性能监控**:显示数据库性能指标,如CPU使用率、...
7. **脚本执行**:允许运行MongoDB shell命令或JavaScript脚本来执行批量操作或自定义任务。 通过本资源包,用户可以快速安装MongoDB数据库并使用可视化客户端进行高效的数据管理。在实际应用中,应根据具体需求...
9. 脚本执行:允许用户直接在MongoVUE中执行MongoDB shell命令,进行数据库维护和调试。 10. 多语言支持:界面支持多种语言,包括简体中文,提高非英文环境下的使用体验。 通过使用MongoVUE,开发者和DBA可以更...
6. **脚本执行**:支持直接在界面内执行MongoDB shell命令和脚本。 7. **版本控制**:对于开发团队,Robo 3T可以集成Git,实现对数据库结构和数据的版本控制。 **对比Studio 3T** Studio 3T是另一款专业的MongoDB...
9. 脚本执行:支持运行MongoDB shell命令或者JavaScript脚本,方便进行批量操作和复杂的数据处理。 10. 图形化聚合管道:对于需要使用MongoDB的聚合框架进行复杂数据分析的情况,桌面管理工具通常会提供一个可视化...
5. ** shell命令支持**:用户可以直接在界面上输入MongoDB shell命令,进行更复杂的操作。 6. **性能监控**:查看数据库的性能指标,如内存使用、磁盘I/O等。 7. **备份与恢复**:方便地进行数据库备份和恢复操作。 ...
MongoDB 的管理命令是通过其命令行界面(Mongo Shell)执行的。Mongo Shell 提供了一个交互式的 JavaScript 环境,用于连接到 MongoDB 服务器并执行各种管理任务。以下是一些常见的 MongoDB 管理命令: 1. `help`:...
11. **命令行工具集成**:尽管提供了图形界面,但NoSQL Manager也允许用户直接执行MongoDB shell命令,满足高级用户的需求。 通过使用NoSQL Manager for MongoDB,无论是开发人员还是DBA,都能更加高效地进行...
在本文中,我们将深入探讨“mongodb.zip”文件中涉及的MongoDB核心概念,包括MongoDB Shell命令、MongoDB与Spring Boot的集成,以及如何搭建副本集和分片集群。 首先,MongoDB Shell是官方提供的一个JavaScript...
8. 脚本支持:使用内置的JavaScript编辑器执行MongoDB shell命令或脚本。 总的来说,Robo 3T是MongoDB管理员和开发者的得力助手,通过其友好的界面和强大的功能,简化了MongoDB的日常管理和开发工作。无论是进行...