MongoDB固定大小的数组实现

时间:2010-12-23 10:37:39

标签: mongodb database nosql

我的问题与http://jira.mongodb.org/browse/SERVER-991有关。我需要一个固定大小的嵌套数组,存储与当前文档相关的最新XX事件。

如何实现客户端此功能?我想保持对数组大小的计数,例如:

  1. 从元素
  2. 中选择计数字段
  3. 将元素推送到嵌入式数组
  4. 如果计数< XX,然后inc_count;否则,弹出最新元素;
  5. 这种方法的缺点:

    • 针对每个事件推送的3个查询
    • 由于mongo没有事务,因此数组可能拥有的元素数量少于允许数量(同时,两个客户端推送或弹出元素) - 但这并不会让我感到非常烦恼

    你能评论一下如何实施吗?

1 个答案:

答案 0 :(得分:3)

您可以使用空值预初始化数组并删除大小检查。只是弹出并推动。这样您还可以避免大小增长和文档重定位。您的客户端代码必须正确处理以null结尾的数组。