文章目录

[隐藏]

  • 连接mongodb
  • 插入数据
  • 聚合
  • 查询
  • 删除记录
  • limit方法
  • skip方法
  • sort方法
  • distinct方法
  • 查询创建的索引
  • 删除索引
  • 创建索引
  • 查看命令执行时间
  • 删除文档
  • 主从复制
  • 监控状态,每秒刷新一次
  • 查看数据库
  • 使用数据库
  • 查看当前数据库中的集合(表)
  • 导出数据库
  • 恢复数据库
连接mongodb

mongo

默认连接到本地端口27017

mongo –host 123.57.244.111 –port 27017  

连接远程数据库

插入数据

插入一条数据:

db.test.insert({title: “1111111111111111111”})  

循环插入数据:

for (var i = 0; i < 100; i++) {  db.test.insert({title: i * 1000})  }  

插入数组:

db.test.insert([{title: “aaaaaaaaaaaaa”}, {title: “bbbbbbbbbbbb”}])  
聚合

插入一个0到100的随机年龄

for (var i = 0; i < 100; i++) {  db.test.insert({age: Math.round(Math.random() * 100)});  }  

统计同一个年龄出现的次数

db.test.aggregate([{group: {_id: "age", count: {$sum: 1}}}])  
查询

查询所有数据

db.test.find()  

查询大于90000的

db.test.find({title: {$gt: 90000}})  

查询大于90000小于93000

db.test.find({title: {gt:90000,lt: 93000}})  

查询一条数据

db.test.findOne()  

查询存在字段name的

db.test.find({name: {$exists: true}})  

查询操作符

  • eq:等于gt:大于
  • gte:大于等于in:匹配数组中指定的任何值
  • lt:大于lte:小于等于
  • ne:匹配不等于指定值的所有值nin:不匹配数组中指定的值
  • size:数量为n的数组exists:查询存在某个字段
  • $type:检索集合中匹配的数据类型
删除记录

删除title大于等于2000的

db.test.remove({title: {$gte: 2000}})  

删除所有记录

db.test.remove({})  
limit方法

该参数指定从MongoDB中读取的记录条数

读取两条记录

db.test.find().limit(2)  
skip方法

跳过指定数量的数据

读取第三条数据

db.test.find().skip(2)  
sort方法

对数据进行排序,可以通过参数指定排序的字段,并使用1和-1来指定排序的方式,其中1为升序排列,而-1是用于降序排列

根据title升序排序

db.test.find().sort({title: 1})  
distinct方法

返回指定字段的非重复值组成的数组

db.test.distinct(“title”)  
查询创建的索引
db.test.getIndexes()  

结果:

[          {                  "v" : 2,                  "key" : {                          "_id" : 1                  },                  "name" : "_id_",                  "ns" : "nodeblog.test"          },          {                  "v" : 2,                  "key" : {                          "title" : 1,                          "count" : 1                  },                  "name" : "title_1_count_1",                  "ns" : "nodeblog.test"          }  ]  
删除索引

通过上面查到的name,如:title_1_count_1

db.test.dropIndex(“title_1_count_1”)  
创建索引
db.test.createIndex({title: 1})  

1:升序, -1:降序

创建联合索引:db.test.createIndex({title: 1, count: 1})

查看命令执行时间

在命令后面增加:explain(“executionStats”)
如:db.test.find({title: “hello99999”}).explain(“executionStats”)
结果中的executionTimeMillis就是花费的时间

删除文档

如:删除所有count大于10的文档
db.test.remove({count: {$gt: 10}})

主从复制

下面两个路径必须先创建

1>开启主服务:mongod –master –dbpath e://MongoDB/data/master –port 8888
2>开启从服务:mongod –slave –dbpath e://MongoDB//data//slave –sources 127.0.0.1:8888 –port 8881

可以看到每秒没主服务那边同步数据的日志
[replslave] syncing from host:127.0.0.1:8888

在master中插入一些数据,直接读取slave服务中的数据是不行的。所以关掉master,slave服务,然后按正常方式启动slave
服务,如:mongod –dbpath E://MongoDB//data//slave –port 8881

连接到slave,如:mongo –port 8881,查看之前从master同步过来的数据,如:db.test.find()

监控状态,每秒刷新一次
mongostat –port 27017  
查看数据库
show dbs  
使用数据库
use users  

只有执行了use才能查找表里的内容

查看当前数据库中的集合(表)
show collections  
导出数据库
mongodump -d nodeblog -o /root/db/bk20170908  

-d:导出的数据库名
-o:导出的目录

恢复数据库
mongorestore -d nodeblog –drop e://MongoDB//data//nodeblog  

–drop:删除原有数据库内容

原文出处:csdn -> http://blog.csdn.net/tujiaw/article/details/78074990

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。