Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
避免MongoDB中的重复数据_Mongodb - Fatal编程技术网

避免MongoDB中的重复数据

避免MongoDB中的重复数据,mongodb,Mongodb,如何确保每个文档中没有“关键”重复。因为如果每个文档都有重复的“键”,那么整个集合的大小将大大增加。如果我使用MMS之类的云服务进行备份,那么使用这种方法肯定会很昂贵。每GB成本为1美元。据估计,复制密钥将使基于云的彩信成本增加14% 注意-我这里不是说由于嵌入文档而导致的数据重复。您可以使用松散的模式,但密钥名称总是重复的。这是MongoDB已知的“问题”。这里有一个bug报告:。你能举例说明“密钥复制”是什么意思吗?我的意思是(属于同一个集合)Doc1{a:1,b:2,c:3}和Doc2{a

如何确保每个文档中没有“关键”重复。因为如果每个文档都有重复的“键”,那么整个集合的大小将大大增加。如果我使用MMS之类的云服务进行备份,那么使用这种方法肯定会很昂贵。每GB成本为1美元。据估计,复制密钥将使基于云的彩信成本增加14%


注意-我这里不是说由于嵌入文档而导致的数据重复。

您可以使用松散的模式,但密钥名称总是重复的。这是MongoDB已知的“问题”。这里有一个bug报告:。

你能举例说明“密钥复制”是什么意思吗?我的意思是(属于同一个集合)Doc1{a:1,b:2,c:3}和Doc2{a:12,b:22,c:33};键“a”、“b”和“c”在每个文档中都会重复。您可以使用一个包含任意数量值数组的字段:
{d:[12,22,33]}
。这就是你的意思吗?也许你可以解释你为什么担心它-你担心没有足够的磁盘空间吗?内存还有别的吗?我不确定你所说的“松散”模式是什么意思-你不需要向MongoDB指定你将使用什么模式,你只需要存储对其模式进行自我描述的文档。更新了我的问题…是的,但我担心的是密钥会被复制,有什么方法可以防止吗?不像你上面描述的那样。如果在
Doc1
Doc2
中插入名为
a
的密钥,它们都会占用存储空间。