考虑以下两个集合并遵循注释。您认为哪一个更合适?
// #1
{x:'a'}
{x:'b'}
{x:'c'}
{x:['d','e']}
{x:'f'}
。
//#2
{x:['a']}
{x:['b']}
{x:['c']}
{x:['d','e']}
{x:['f']}
一些事实:
x
通常只有一个值(95%),有些时候(5%)。Array[0]
。答案 0 :(得分:1)
为了放大@ ZaidMasud的观点,我建议保留sclars或阵列,而不是两者兼而有之。如果你有不可避免的理由同时拥有(传统数据),那么我建议你非常熟悉Mongo查询如何使用数组;乍一看它并不直观。请参阅示例this puzzler。
答案 1 :(得分:0)
从架构设计的角度来看,即使MongoDB允许您为键值对存储不同的数据类型,但这样做并不一定是个好主意。如果没有令人信服的理由使用不同的数据类型,通常最好对给定的键/值对使用相同的数据类型。
所以考虑到这个推理,我更喜欢#2。在这种情况下,应用程序代码通常会更简单。此外,如果您需要使用Aggregation Framework,您会发现统一类型很有用。