mongodb id自增问题
迷茫
迷茫 2017-04-22 08:56:12
0
1
546

http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/
官方文档给出了2种解决方法,我只看了第一种的时候:

function getNextSequence(name) {
   var ret = db.counters.findAndModify(
          {
            query: { _id: name },
            update: { $inc: { seq: 1 } },
            new: true
          }
   );

   return ret.seq;
}

function getNextSequence(name) {
   var ret = db.counters.findAndModify(
          {
            query: { _id: name },
            update: { $inc: { seq: 1 } },
            new: true,
            upsert: true
          }
   );

   return ret.seq;
}

英文看得有点模糊,多了一个upsert到底是好还是不好?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(1)
黄舟

Non, sauf si vous disposez d'un index unique, vous pouvez insérer plusieurs documents portant le même nom. Il peut y avoir plusieurs fonctions findAndModify exécutées en même temps. Ils constatent tous que le document existant est introuvable, ils décident donc tous d'insérer un nouveau document et le processus se répète.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal