【读书笔记】MongoDB管理与开发精要(2)

GridFS

GridFS是一种将大型文件存储在MongoDB数据库中的文件规范。

GridFS使用两个表来存储数据:

  • files 包含元数据对象
  • chunks 包含其他一些相关信息的二进制块

为了使多个GridFS命名为一个单一的数据库,文件和块都有一个前缀,默认情况下,前缀是fs,所以任何默认的GridFS存储将包括命名空间fs.files和fs.chunks。各种第三方语言的驱动有权限改变这个前缀,所以你可以尝试设置另一个GridFS命名空间用于存储照片,它的具体位置为:photos.files和photos.chunks。

files存储文件的基础元数据信息,字段说明:

  • Filename: 存储的文件名
  • chunkSize: chunks分块的大小
  • uploadDate: 入库时间
  • md5: 此文件的md5码
  • length: 文件大小, 单位”字节”

MapReduce

db.runCommand( 
{
mapreduce : <collection>,
map : <mapfunction>,
reduce : <reducefunction>
[, query : <query filter object>]
[, sort : <sorts the input objects using this key. Useful for optimization, like sorting by the emit key for fewer reduces>]
[, limit : <number of objects to return from collection>]
[, out : <see output options below>]
[, keeptemp: <true|false>]
[, finalize : <finalizefunction>]
[, scope : <object where fields go into javascript global scope >]
[, verbose : true]
}
);

参数说明:

  • mapreduce: 要操作的目标集合。
  • map: 映射函数 (生成键值对序列,作为 reduce 函数参数)。
  • reduce: 统计函数。
  • query: 目标记录过滤。
  • sort: 目标记录排序。
  • limit: 限制目标记录数量。
  • out: 统计结果存放集合 (不指定则使用临时集合,在客户端断开后自动删除)。
  • keeptemp: 是否保留临时集合。
  • finalize: 最终处理函数 (对 reduce 返回结果进行最终整理后存入结果集合)。
  • scope: 向 map、reduce、finalize 导入外部变量。
  • verbose: 显示详细的时间统计信息。
posted @ 2012-07-05 00:14  alongg  阅读(262)  评论(0编辑  收藏  举报