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

浏览:30日期:2023-07-03

问题描述

请问下,我有个用户---》多个地址我目前把地址用内嵌文档放入用户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;}

相关文章: