`

MongoDB的Shell命令

阅读更多

对数据进行操作时,需要注意,在非关系数据中,同一个字段,可能存了不同类型的数据,所以是否加引号,查询出来的结果可能不一样。另外,条件的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"})
 

偏僻知识点:

1)根据$type查询(非关系数据库中,同一个字段,存储的值可能是不同类型的):

 

//{$type:2}代表字符串String类型
db.Collection1.find({
   'name':{$type:2},
})

2)复制(即同步数据),一主一从、一主多从。

3)监控,可以查看运行状态。

4)java的使用

5)用explain()来分析查询使用索引情况。

6)不支持事务,但很多操作都是原子操作,比如:

 

{ $set : { field : value } }
{ $inc : { field : value } }
 

 

 

 

 

 

 

 

  • 大小: 15.4 KB
分享到:
评论

相关推荐

    MongoDB Shell命令.pdf

    MongoDB的一个独特之处在于它不使用传统的SQL语句,而是通过MongoDB Shell来执行各种操作,因此掌握其Shell命令对于使用MongoDB进行开发和维护至关重要。 在MongoDB中,基本的数据单位是文档,文档中的数据是以键值...

    使用Robo 3T中Shell命令操作MongoDB数据库.pptx

    在MongoDB中,我们经常使用客户端工具来与数据库进行交互,其中Robo 3T(之前称为Robomongo)是一款非常实用的图形用户界面工具,它提供了Shell命令操作MongoDB数据库的功能。 **1. 打开Shell窗口** 在Robo 3T中,...

    mongoshell 安装包

    6.0 版本以上的mongodb不提供,shell脚本需要自己安装使用

    MongoDB常用命令批处理

    - `startMongoDB.sh`:这是针对Linux环境(如CentOS 7)的Shell脚本,用于启动MongoDB。它可能会包含运行`mongod`命令的代码,可能需要指定配置文件和日志文件路径,并处理必要的权限和环境变量。 请注意,这些...

    mongodb 操作命令(全)

    为了更深入地了解这些概念,你可以查阅DB shell数据操作.doc文档,它应该包含了更详尽的MongoDB操作步骤和示例。通过实践和学习,你将能熟练掌握MongoDB的日常操作,无论是简单的数据管理还是复杂的查询和分析。

    mongodb常用命令.txt

    在centos7下安装部署mongodb分片+副本集群常用命令整理,内容包含,安装、配置、启动、访问shell终端等命令

    NoSQL Manager for MongoDB客户端

    7. 脚本支持:内置脚本编辑器,支持MongoDB shell命令,便于执行自动化任务和脚本调试。 8. 数据可视化:将数据以图表形式展示,便于理解和分析,这对于数据报告和决策支持非常有价值。 9. 迁移工具:对于从其他...

    studio-3t mongodb连接工具

    3. **脚本支持**:支持JavaScript和MongoDB Shell命令,方便执行脚本和命令操作。 4. **数据导入导出**:支持CSV、JSON、XML等多种格式的数据导入和导出,便于数据迁移和备份。 5. **性能监控**:提供实时的性能指标...

    mongodb数据库以及可视化客户端软件

    7. **脚本执行**:允许运行MongoDB shell命令或JavaScript脚本来执行批量操作或自定义任务。 通过本资源包,用户可以快速安装MongoDB数据库并使用可视化客户端进行高效的数据管理。在实际应用中,应根据具体需求...

    MongoVUE mongodb连接客户端

    9. 脚本执行:允许用户直接在MongoVUE中执行MongoDB shell命令,进行数据库维护和调试。 10. 多语言支持:界面支持多种语言,包括简体中文,提高非英文环境下的使用体验。 通过使用MongoVUE,开发者和DBA可以更...

    MongoDB tools.rar

    6. **脚本执行**:支持直接在界面内执行MongoDB shell命令和脚本。 7. **版本控制**:对于开发团队,Robo 3T可以集成Git,实现对数据库结构和数据的版本控制。 **对比Studio 3T** Studio 3T是另一款专业的MongoDB...

    mongodb 4.0 客户端工具nosqlbooster

    - **脚本执行**:支持MongoDB shell命令和JavaScript脚本的运行,方便执行批量操作。 - **日志查看**:可以查看MongoDB服务器的日志,帮助诊断和解决问题。 - **性能监控**:显示数据库性能指标,如CPU使用率、...

    mongoDB 桌面管理工具

    9. 脚本执行:支持运行MongoDB shell命令或者JavaScript脚本,方便进行批量操作和复杂的数据处理。 10. 图形化聚合管道:对于需要使用MongoDB的聚合框架进行复杂数据分析的情况,桌面管理工具通常会提供一个可视化...

    MongoDB连接工具-32位

    5. ** shell命令支持**:用户可以直接在界面上输入MongoDB shell命令,进行更复杂的操作。 6. **性能监控**:查看数据库的性能指标,如内存使用、磁盘I/O等。 7. **备份与恢复**:方便地进行数据库备份和恢复操作。 ...

    详解MongoDB管理命令

    MongoDB 的管理命令是通过其命令行界面(Mongo Shell)执行的。Mongo Shell 提供了一个交互式的 JavaScript 环境,用于连接到 MongoDB 服务器并执行各种管理任务。以下是一些常见的 MongoDB 管理命令: 1. `help`:...

    NoSQL Manager for MongoDB.rar

    11. **命令行工具集成**:尽管提供了图形界面,但NoSQL Manager也允许用户直接执行MongoDB shell命令,满足高级用户的需求。 通过使用NoSQL Manager for MongoDB,无论是开发人员还是DBA,都能更加高效地进行...

    mongodb.zip

    在本文中,我们将深入探讨“mongodb.zip”文件中涉及的MongoDB核心概念,包括MongoDB Shell命令、MongoDB与Spring Boot的集成,以及如何搭建副本集和分片集群。 首先,MongoDB Shell是官方提供的一个JavaScript...

    mongodb可视化工具robo3t

    8. 脚本支持:使用内置的JavaScript编辑器执行MongoDB shell命令或脚本。 总的来说,Robo 3T是MongoDB管理员和开发者的得力助手,通过其友好的界面和强大的功能,简化了MongoDB的日常管理和开发工作。无论是进行...

Global site tag (gtag.js) - Google Analytics