为了账号安全,请及时绑定邮箱和手机立即绑定

mongodb,一对多,内嵌文档问题

mongodb,一对多,内嵌文档问题

阿晨1998 2018-08-14 13:10:27
请问下,我有个用户---》多个地址我目前把地址用内嵌文档放入用户collection,可是如果要修改地址,内嵌文档没有id怎么办? 内嵌文档怎么实现自增id?
查看完整描述

2 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

在mongodb中实现自增长id,有2种方法:

  1. counter collection

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."

   }

)

用findAndModify()

function getNextSequence(name) {

   var ret = db.counters.findAndModify(

          {

            query: { _id: name },

            update: { $inc: { seq: 1 } },

            new: true,

            upsert: true

          }

   );


   return ret.seq;

}


查看完整回答
反对 回复 2018-08-26
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

建议用uuid吧, 实现自增id的话要自己程序手动维护写一个自增函数 还麻烦些 只要做到唯一就行 不一定要自增的

查看完整回答
反对 回复 2018-08-26
  • 2 回答
  • 0 关注
  • 781 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信