mongodb,一对多,内嵌文档问题
天蓬老师
天蓬老师 2017-04-27 09:02:49
0
2
561

请问下,我有个用户---》多个地址
我目前把地址用内嵌文档放入用户collection,可是如果要修改地址,内嵌文档没有id怎么办? 内嵌文档怎么实现自增id?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

répondre à tous(2)
过去多啦不再A梦

Il est recommandé d'utiliser uuid. Pour implémenter l'ID à incrémentation automatique, vous devez maintenir et écrire manuellement une fonction d'incrémentation automatique dans votre propre programme. Tant qu'elle est unique, elle ne le fait pas. doit être auto-incrémenté

迷茫

Il existe deux méthodes pour implémenter un ID auto-croissant dans mongodb :

  1. collecte de comptoir

db.counters.insert(
   {
      _id: "userid",
      seq: 0
   }
)

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

   return ret.seq;
}

db.users.insert(
   {
     _id: getNextSequence("userid"),
     name: "Sarah C."
   }
)

db.users.insert(
   {
     _id: getNextSequence("userid"),
     name: "Bob D."
   }
)
  1. Utilisez findAndModify()

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

   return ret.seq;
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal