前面写了一篇关于gridfs文章,但是没有关于gridfs删除的信息,现在补上,有点标题党的感觉。
gridfs是一种将大型文件存储在MongoDB的文件规范。所有官方支持的驱动均实现了GridFS规范。简单看一下官方说明:
When to Use GridFS
In MongoDB, use GridFS for storing files larger than 16 MB.
In some situations, storing large files may be more efficient in a MongoDB database than on a system-level filesystem.
玩了玩gridfs才发现,这玩意,不能算做是传统意义上的分步式文件服务器。它的数据存储在mongodb中,大文件会被分成小块存储,分布式依赖mongodb。
对于存储小文件,例如:图片之类的,fastdfs比较合适的。
对于大一些的文件,例如:小视频,大一点文档等gridfs还是比较合适的。
有人问我,redis的多数据库,是不是启动多个redis进程,监听不同的端口。从某种层面上来说,这样可以算是,但是不推荐。
mongodb采用的分片原理,其实很简单,说白了就是,一个蛋糕特别大,需要非常非常大的盒子才能装下,就算装下了存储也不方便,所以把大蛋糕切成小蛋糕进行存储.这种思想在其他应用或数据库中也有应用.例如:mysql的分区,fastdfs的分组
mongodb的自增实现根oracle,postgresql是差不多,都是通过计数器来实现的.
oracle自增实现: 实例说明oracle序列用法
postgresql自增实现: postgresql auto_increment 实现 通用方法
紧接着上篇来,这篇主要讲,mongodb的group功能,做的还是挺强大的,相当对于find(),skip(),distinct()等,用法比较复杂。
前一篇文章说到了mongodb update 的字符操作,下面说一下mongodb update的数组操作,用的版本是mongodb2.6.3。
下面常用的update操作,用mongodb2.6.3版本测试的,官方发布的稳定版本2.4,建议用稳定版。