搜尋

首頁  >  問答  >  主體

mongodb,一對多,內嵌文檔問題

請問下,我有個使用者---》多個地址
我目前把地址用內嵌文檔放入用戶collection,可是如果要修改地址,內嵌文檔沒有id怎麼辦? 內嵌文檔怎麼實現自增id?

天蓬老师天蓬老师2762 天前565

全部回覆(2)我來回復

  • 过去多啦不再A梦

    过去多啦不再A梦2017-04-27 09:04:49

    建議用uuid吧, 實現自增id的話要自己程序手動維護寫一個自增函數 還麻煩些 只要做到唯一就行 不一定要自增的

    回覆
    0
  • 迷茫

    迷茫2017-04-27 09:04:49

    在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."
       }
    )
    1. 用findAndModify()

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

    回覆
    0
  • 取消回覆