1

我有一个 MongoDb 集合,其中一些键可能未填充与集合中的所有对象相关。我将要进行查询以查找未填充这些键的所有对象。

会不会更好

  • 总是在对象中包含键并用 null 填充它? {'x' : 'banana', 'y' : null}或者
  • 不要包含不相关的密钥{'x' : 'banana'}

我知道我可以用任何一种方式查询我想要的结果(见这里),我只是想知道哪个被认为是“最佳实践”以及为什么。

请注意(如果相关)该集合有大约 10 个“必需”字段和 3 个这些“可选”字段。

4

2 回答 2

1

我会说这取决于您的应用程序对该集合中的文档所做的语义。通过不存储y: null. 如果你确实存储了,y: null你必须记住技术上存在,因此你应该以某种方式y查询s。null如果 Mongo 上面的层不在乎,那么我会选择不存储空字段,就像@Derick 推荐的那样。但是,如果它确实关心,并且您发现使用nulls 中的ys 更容易,那么就去做吧。

更新您关于有效性的问题。如果你做的一切都是正确的,那么你正在工作的数据集适合 RAM。话虽如此,除非您按y. 在这种情况下,行为可能会有所不同,但找出答案的最佳方法是运行一些测试。

于 2012-04-28T19:42:41.893 回答
1

我会去不存储空字段。但是,这在一定程度上取决于您将在此集合上运行哪种查询。如果你能详细说明,我会更新答案。

于 2012-04-28T19:36:38.227 回答