【发布时间】:2015-11-01 00:53:25
【问题描述】:
我有一个包含大约 100k 文档的集合。我想在我的文档中添加一个自动递增的“custom_id”字段,并从现在开始通过递增该字段来继续添加我的文档。
最好的方法是什么?我在官方文档 (http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/) 中看到了一些示例,但它们仅用于添加新文档,而不用于更新现有集合。
我根据上面的链接创建的示例代码来增加我的计数器:
function incrementAndGetNext(counter, callback) {
counters.findAndModify({
name: counter
}, [["_id", 1]], {
$inc: {
"count": 1
}
}, {
"new": true
}, function (err, doc) {
if (err) return console.log(err);
callback(doc.value);
})
}
上面的代码counters 是db.counters 集合,我有这个文档:
{_id:"...",name:"post",count:"0"}
很想知道。
谢谢。
附:我正在为 js 使用本机 mongojs 驱动程序
【问题讨论】:
-
我也刚刚在两个问题前给了这个链接:Create an Auto-Incrementing Sequence Field
-
@BlakesSeven 那个链接就是我上面提到的那个,频繁添加文档的时候就失效了。
-
@Zettam :你为什么需要一个“增量字段”?你的问题不够清楚,你已经看过“一些例子”,我们不是来猜测这些例子是什么,我们不是来猜测我们一无所知的例子中是否存在弱点,我们是不是在这里猜测你是否错误地认为一个例子不好,然后猜测要解释什么。如果您需要帮助,请重写您的问题。 (我脑子里有一些想法,但如果我不确定你的问题是什么,我就不会写了……)
-
我正在尝试的代码已链接。我提到了这个问题,当添加太多文档时,它会中断。你可以试试。
标签: mongodb