(转)Mongo限制规则
-
本文转自
本帖下載内容已隐藏,请登入以查看隐藏内容!七、分片关键字限制
1、关键字不能超过512字节。
八、操作
2、关键字不允许变更:若要修改可采用如下方式:
1)导出所有数据到另外的格式
2)删除原来的分片集合
3)配置新的分片关键字
4)预先分割关键字范围确保实现分布式
5)保存导出的数据到mongo之中。
3、关键字值不允许修改:当一个文档已经插入到分片集合中后,涉及到分片关键字的字段不允许update。
4、单调递增/递减的分片关键字会限制插入效率:
如果使用_id字段作为分片关键字,由于该字段根据time递增,因此这也是一个会影响插入效率的。当向单调递增或递减的分片关键字集合中插入数据时,所有的插入将会导入到同一个chunk同一个分片之中。
加入在集群中以读取和更新占据主导,则这种限制并不影响集群。
为了避免这种限制,使用一个哈希分片关键字或者选择一个非单调递增递减的字段。1、联合多个$in操作:联合多个in表达式,将可能触发联合索引的合并限制。如果符合的item大于等于4000000,mongo将产生“combinatorial limit of $in partitioning of result set exceeded” 错误。
九、命名限制
1、数据库名称是大小写区别的:同时mongo也不允许两个数据库名称仅仅为大小写区别。
2、在windows下的数据库名称限制:/\. "*<>:|? 并且不能包括空格符。
3、在Unix Linux下的数据库名称限制:/\. " 同样不能包括空格符。
4、数据库名称长度:64字节
5、集合名称限制:
必须以下划线或者字母开头,并且不能包括 $,引号,空格符,点号
6、字段名称限制:
不能包括点号,$,与空格符。