<span style="color: rgb(51, 51, 51); font-family: "Microsoft Yahei", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 28px;">分布式文件存储</span>
概念
数据库database
集合<span style="color: rgb(51, 51, 51); font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, STHeiti, "Microsoft Yahei", sans-serif; font-size: 12px; background-color: rgb(246, 244, 240);">collection</span>
文档<span style="color: rgb(51, 51, 51); font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, STHeiti, "Microsoft Yahei", sans-serif; font-size: 12px;">document</span>
域<span style="color: rgb(51, 51, 51); font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, STHeiti, "Microsoft Yahei", sans-serif; font-size: 12px; background-color: rgb(246, 244, 240);">field</span>
索引<font color="#333333" face="Open Sans, Helvetica Neue, Helvetica, Arial, STHeiti, Microsoft Yahei, sans-serif"><span style="font-size: 12px;">index</span></font>
主键<span style="color: rgb(51, 51, 51); font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, STHeiti, "Microsoft Yahei", sans-serif; font-size: 12px;">primary key</span>
自动将_id字段设为主键
用户
新建用户
db.createUser({user:"admin", pwd:"admin", roles:[{role:"userAdminAnyDatabase", db:"admin"}]})
用户验证
db.auth("admin","admin")
show users
db.getUsers()
db.getUser('user')
db.changeUserPassword('user', 'newPassword')
db.updateUser("user", {roles:[{role:"", db:""}]})
<span>collection</span>
db.collection.insert({})
插入文档
<span>db</span><span>.</span><span>collection</span><span>.</span><span>find</span><span>()</span>
查询文档
limit
skip
db.collection.find().limit(NUMBER).skip(NUMBER)
db.collection.find().sort({key: 1})
db.collection.update()
更新文档
db.collection.save()
替换整个文档
db.collection.remove(<query>)
删除文档
<span>db.collection.</span>ensureIndex()
创建索引
db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)
聚合
管道操作
$project
$match
$limit
$skip
$unwind
$group
$sort
$geoNear
$sum
$avg
$min
$max
$push
$first
$last
#addToSet
复制
先关闭
mongod --port 27017 --dbpath '/data/re0' --replSet re0
以replSet参数启动
rs.add(HOST_NAME:PORT)
把从节点添加给主节点
一主(一)多从
主节点记录操作,从节点定期轮询主节点获取操作,然后对数据副本操作
从节点会在主节点宕机后接替主节点
分片
Config server
<span style="color: rgb(51, 51, 51); font-family: "Microsoft Yahei", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 12px; line-height: 24px;">ClusterMetadata</span>
mongod实例
备份
mongodump -h dbhost -d dbname -o dbdirectory
mongorestore -h dbhost -d dbname --directoryperdb dbdirectory
监控
<span style="color: rgb(51, 51, 51); font-family: "Microsoft Yahei", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 12px; line-height: 24px;">mongostat</span>
状态检测
<span style="color: rgb(51, 51, 51); font-family: "Microsoft Yahei", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 12px; line-height: 24px;">mongotop</span>
跟踪一个实例
查询分析
<span style="color: rgb(51, 51, 51); font-family: "Microsoft Yahei", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 12px; line-height: 24px;">explain()</span>
hint()强迫使用置顶索引
<span style="color: rgb(51, 51, 51); font-family: "Microsoft Yahei", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 12px; line-height: 24px;">GridFS</span>
分片存储大文件
正则
db.col.find({text:{$regex:"ll"}})
全文索引
db.col.find({$text:{$search:"ll"}})
ObjectId
<span style="color: rgb(51, 51, 51); font-family: "Microsoft Yahei", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 12px; line-height: 24px;">getTimestamp</span>
创建时间戳