knight_ka | 生活及学习笔记

Mongodb基本操作

Mongodb基本操作

mongodb维护常用命令:

1.监控:
bin/mongostat   查看mongodb运行状态
bin/mongotop    查看mongodb具体每个操作花费的时间
2.备份与恢复
>mongodump -h dbhost -d dbname -o dbdirectory       备份
>mongorestore -h <hostname><:port> -d dbname <path> 恢复
3.启动
./mongod --dbpath=/data/mongo/db --fork --port 11111 --logpath=/data/mongo/logs/work.log --logappend --replSet qsbtest

./mongod --dbpath=/data/mongo/db2 --fork --port 22222 --logpath=/data/mongo/logs2/work.log --logappend --replSet qsbtest

./mongod --dbpath=/data/mongo/db3 --fork --port 33333 --logpath=/data/mongo/logs3/work.log --logappend --replSet qsbtest
4.MongoDB CRUD

插入:
db.user.insert({"id":"1","name":"TEST","address":{"id","1","city":"BEIJING"}})    user文档嵌套address文档
db.user.insert({"id":"1","name":"TEST","address_id":"Object(123456789)"})   手动引用address的id
db.user.insert({"id":"1","name":"TEST","address_id":{"$ref":"address","$id":"Object(123456789)","$db":"dbName"}})   数据库变量引用
$ref:集合名称   $id:引用的id   $db:数据库名称,可选参数

一对多:
db.user.insert({"id":"1","name":"TEST","address_ids":["Object(123456789)","Object(987654321)"]})
db.user.insert({"id":"1","name":"TEST","address_ids":[{"$ref":"address","$id":"Object(123456789)","$db":"dbName"},{"$ref":"address","$id":"Object(123456789)","$db":"dbName"}]})

修改:
db.user.update({"name","TEST"},{"name":1,id:0}) 查询条件,显示的字段

删除文档:
db.user.delete{{"name":"TEST"}} 删除的条件

删除数据库:
use database;
db.dropDatabase();

删除user集合:
db.user.drop();

查询:
db.user.find({},{}) 条件,显示的字段。 1为显示 0为不显示

聚合查询:
db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
相当于:select by_user, count(*) from mycol group by by_user

创建索引:
db.users.ensureIndex({gender:1,user_name:1})

MongoDB支持许多数据类型的列表下面给出:

String : 这是最常用的数据类型来存储数据。在MongoDB中的字符串必须是有效的UTF-8。

Integer : 这种类型是用来存储一个数值。整数可以是32位或64位,这取决于您的服务器。

Boolean : 此类型用于存储一个布尔值 (true/ false) 。

Double : 这种类型是用来存储浮点值。

Min/ Max keys : 这种类型被用来对BSON元素的最低和最高值比较。

Arrays : 使用此类型的数组或列表或多个值存储到一个键。

Timestamp : 时间戳。这可以方便记录时的文件已被修改或添加。

Object : 此数据类型用于嵌入式的文件。

Null : 这种类型是用来存储一个Null值。

Symbol : 此数据类型用于字符串相同,但它通常是保留给特定符号类型的语言使用。

Date : 此数据类型用于存储当前日期或时间的UNIX时间格式。可以指定自己的日期和时间,日期和年,月,日到创建对象。

Object ID : 此数据类型用于存储文档的ID。

Binary data : 此数据类型用于存储二进制数据。

Code : 此数据类型用于存储到文档中的JavaScript代码。

Regular expression : 此数据类型用于存储正则表达式