【发布时间】:2015-08-11 11:44:10
【问题描述】:
假设我有以下集合结构:
{type: 1, value: "f"},
{type: 2, value: "c"},
{type: 2, value: "b"},
{type: 1, value: "d"},
{type: 1, value: "e"},
{type: 2, value: "a"}
现在我想为每个“类型”获取 2 个按字母顺序排列的第一个文档(“值”),结果应该如下所示:
{type: 1, value: "d"},
{type: 1, value: "e"},
{type: 2, value: "a"},
{type: 2, value: "b"},
使用 MongoDB,我必须检索所有文档并删除不必要的文档。
是否有另一个 NoSQL 系统具有内置函数来执行此操作?
另一个简洁的要求是可以简单地更新超过 2 维的嵌套文档,这在 MongoDB 中也是不可能的,因为您只能使用一次位置运算符“$”(请参阅https://jira.mongodb.org/browse/SERVER-831)。我至少需要 3 维文档,我已经考虑过了,其他一切都意味着阅读时性能会大幅下降。
或者是否有可能在我缺少的 MongoDB 中做到这一点?
我正在使用 golang,所以数据库系统应该有一个维护良好的包。
【问题讨论】:
标签: javascript mongodb mongodb-query aggregation-framework