MongoDB 自动增长
MongoDB 不内置自增字段,用“计数器集合 + $inc + upsert”原子取号,或用 findAndModify 返回自增后的值。
Key PointsMongoDB,自动增长,计数器,$inc,findAndModify
讲解
MongoDB 不内置自增字段,用“计数器集合 + $inc + upsert”原子取号,或用 findAndModify 返回自增后的值。
示例
JavaScript
// 初始化计数器
db.counters.insertOne({ _id: "siteid", seq: 0 })
// 取号(原子)
function nextSeq(name) {
const r = db.counters.findOneAndUpdate(
{ _id: name }, { $inc: { seq: 1 } },
{ returnDocument: "after", upsert: true });
return r.seq;
}
db.site.insertOne({ _id: nextSeq("siteid"), title: "runoob" })Output
-- _id 变成 1、2、3… 的人读友好自增讲解
MongoDB 不内置自增字段,用“计数器集合 + $inc + upsert”原子取号,或用 findAndModify 返回自增后的值。
示例
JavaScript
// 初始化计数器
db.counters.insertOne({ _id: "siteid", seq: 0 })
// 取号(原子)
function nextSeq(name) {
const r = db.counters.findOneAndUpdate(
{ _id: name }, { $inc: { seq: 1 } },
{ returnDocument: "after", upsert: true });
return r.seq;
}
db.site.insertOne({ _id: nextSeq("siteid"), title: "runoob" })Output
-- _id 变成 1、2、3… 的人读友好自增