mongodb基础操作

来源:互联网 发布:智能算法优化 编辑:程序博客网 时间:2024/06/08 20:13
1.查询当前连接数

    db.serverStatus().connections;

2.建立数据库

     use XXX

3.查看所有的数据库

     show dbs

4.要显示创建的数据库,需要插入数据

     db.XXX.insert({"XX":1})

5.删除数据库

     db.dropDatabase()

6.删除集合

     db.collection.drop()

7.插入文档

     db.XXX.insert({xx:"xx", xx:"xx" })

8.更新

update:
db.xxx.update(
<query>,
<update>,
{ upset:<boolean>,
multi:<boolean>,
writeConcern:<document>
} )
<query>:updata的查询条件,类似SQL中的where
<update>:updata的对象和一些更新操作符,类似sql update中的set
upsert:可选,如果不存在update的记录,是否插入,默认为false
multi:可选,默认false,只更新找到第一条记录,如果为true,全部都要更新
writeConcern:可选,抛出异常级别 save():
db.xx.save(
<document>,
{
writeConcern:<document>
}
)

9.删除文档

db.xxx.remove( 
<query>,
{
justOne:<boolean>,
writeConcern:<document>
} )
query:(可选)删除的文档的条件
justOne:(可选)如果设为true或1,则只删除一个文档
writeConcern:(可选)抛出异常级别

10.查询文档

db.collection.find(query,projection)
query:可选,操作符指定查询条件
projection:可选,使用投影操作符指定返回的键值

11.条件操作符

大于:
db.col.find({"likes" : {$gt : 100}})
小于:
db.col.find({likes : {$lt : 150}})
大于等于:
db.col.find({likes : {$gte : 100}})
小于等于:
db.col.find({likes : {$lte : 150}})

12.MongoDB $type 操作符

$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回。

类型          数字 备注
Double     1
String      2
Object      3
Array      4
Binary data  5
Undefined   6 已废弃。
Object id    7
Boolean    8
Date    9
Null    10
Regular Expression 11
JavaScript 13
Symbol 14
JavaScript (with scope) 15
32-bit integer 16
Timestamp 17
64-bit integer 18
Min key 255 Query with -1.
Max key 127

13.Limit与Skip方法

     Limit:
db.xxx.find().limit(NUMBER)
db.col.find({},{"title":1,_id:0}).limit(2)
     Skip():
我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。
db.col.find({},{"title":1,_id:0}).limit(1).skip(1)

14.sort()方法

在MongoDB中使用使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列。
db.foo.find().sort({time:1})

15.索引

索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。(避免全表扫描)
示例:
db.col.ensureIndex({"title":1,"description":-1})
1代表升序
-1代表降序

16.聚合

MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的 count(*)。
示例:
db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)
db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])

17.复制(副本集)

mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。 mongodb各个节点常见的搭配方式为:一主一从、一主多从。 主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。
副本集特征: N 个节点的集群
任何节点可作为主节点
所有写入操作都在主节点上
自动故障转移
自动恢复
MongoDB副本集设置: mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0
以上实例会启动一个名为rs0的MongoDB实例,其端口号为27017。
启动后打开命令提示框并连接上mongoDB服务。
在Mongo客户端使用命令rs.initiate()来启动一个新的副本集。
我们可以使用rs.conf()来查看副本集的配置
查看副本集状态使用 rs.status() 命令
副本集添加成员:

rs.add(HOST_NAME:PORT)
rs.add("mongod1.net:27017")

18.MongoDB 分片
19.MongoDB 备份(mongodump)与恢复(mongorestore)

备份数据语法:
mongodump命令脚本语法如下:

mongodump -h dbhost -d dbname -o dbdirectory
-h:
MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:
需要备份的数据库实例,例如:test
-o:
备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。 示例: mongodump -h 192.168.3.158 -d testdb -o D:\mongodb\data\db_back
恢复数据语法:
mongorestore命令脚本语法如下:
mongorestore -h
<hostname><:port> -d dbname <path> --host <:port>, -h <:port>:
MongoDB所在服务器地址,默认为: localhost:27017
--db , -d :
需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
--drop:
恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!
<path>:
mongorestore 最后的一个参数,设置备份数据所在位置,例如:c:\data\dump\test。 你不能同时指定 <path> 和 --dir 选项,--dir也可以设置备份目录。
--dir:
指定备份的目录 你不能同时指定 <path> 和 --dir 选项。
示例:
mongorestore -h 192.168.3.158:27017 -db testdb -dir D:\mongodb\data\db_back\testdb

原创粉丝点击