如何在流星上创建自动增量字段?

Cam*_*ilo 9 mongodb node.js meteor

我需要一个自动增量字段,但不是主要ID,它只是为客户支持应用程序的用户提供易于记忆的案例编号.

我发现这篇文章解释了如何在mongodb http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/上创建一个自动增量字段,但这个解决方案还不支持minimongo.

我该如何实现此功能?我不在乎解决方案是否由于错误而跳过一些连续的案例编号,但案例编号必须是唯一的.

是否有另一种方法可以生成唯一且短的案例编号?我不想向用户提供像这样的PxyooJWSKc3sMz6Lc的案例代码,因为他们必须用案例编号来引用他们的问题.

编辑:

Minimong不支持findAndModify,因此我无法使用我发布的链接上列出的第一个解决方案.第二种解决方案还需要在minimongo上不可用的方法.

Cam*_*ilo 12

使用mongo-counter包,可以使用该方法创建增量器incrementCounter(name).该实现基于创建自动递增序列字段,直接访问数据库而无需通过Meteor集合.

Meteor.methods({
    'addRecord':function(doc) {
        doc.id = incrementCounter('docId');
        MyCollection.insert(doc);
        return doc.id;
    }
});
Run Code Online (Sandbox Code Playgroud)

更新

Atmosphere上有新的mongo计数器包,可能比我最初的推荐更好.

  • 请注意,不建议使用仅链接答案,因此,答案应该是搜索解决方案的终点(相对于引用的另一个中途停留,随着时间推移会逐渐变得陈旧).请考虑在此处添加独立的概要,并将链接作为参考. (4认同)