问题描述
请问下,我有个用户---》多个地址我目前把地址用内嵌文档放入用户collection,可是如果要修改地址,内嵌文档没有id怎么办? 内嵌文档怎么实现自增id?
问题解答
回答1:建议用uuid吧, 实现自增id的话要自己程序手动维护写一个自增函数 还麻烦些 只要做到唯一就行 不一定要自增的
回答2:在mongodb中实现自增长id,有2种方法:
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;}