小编Jae*_*pil的帖子

Mongo DB如何处理大型数组字段?

我试图将一个ObjectIds列表作为数组字段存储在文档中.

据我所知,Mongo DB对单个文档的大小限制为4MB.因此,考虑到ObjectId的长度为12个字节,文档应该能够在一个数组字段中处理超过300,000个条目.(如果计算结束,请告诉我).

如果数组中的条目数接近该限制,我可以期待什么样的性能?特别是当字段被索引时?任何记忆问题?


典型的查询如下所示:

按单个值查询

db.myCollection.find(
  {
    myObjectIds: ObjectId('47cc67093475061e3d95369d')
  }
);
Run Code Online (Sandbox Code Playgroud)

按多个值查询

db.myCollection.find(
  {
    myObjectIds: {$in: [ObjectId('47cc67093475061e3d95369d'), ...]}
  }
);
Run Code Online (Sandbox Code Playgroud)

为多个文档添加新值

db.myCollection.update(
  {
    _id: {$in: [ObjectId('56cc67093475061e3d95369d'), ...]}
  },
  {
    $addToSet: {myObjectIds: ObjectId('69cc67093475061e3d95369d')}
  }
);
Run Code Online (Sandbox Code Playgroud)


arrays performance mongodb

11
推荐指数
2
解决办法
4745
查看次数

ZF2,使用Vendor Module的Form类的最佳实践是什么?

我应该如何将自定义样式应用于供应商模块的表单或将其嵌入到我自己的View脚本中?更具体地说,我想使用EdpUser Module(https://github.com/EvanDotPro/EdpUser)提供的表单.

最简单的方法似乎是直接修改供应商的脚本.但显然这会与供应商未来的更新产生冲突.

另一种方式似乎是将Vendor的Controller复制到我自己的Module中,然后提供我自己的视图.但是,这会遇到与供应商未来更新不同步的类似问题.我必须小心命名空间.

也许我应该扩展供应商的控制器而不是复制它.这应该适用于命名空间,我应该能够很容易地访问我的控制器中的窗体.在使用我自己的视图脚本时.这是正确的方式还是有更好的方式?

谢谢

zend-framework2

11
推荐指数
1
解决办法
7448
查看次数

标签 统计

arrays ×1

mongodb ×1

performance ×1

zend-framework2 ×1