首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Node.js
Express
PPA for Ubuntu
ppa:chris-lea/node.js
V2EX  ›  Node.js

mongoose的Schema能不能设自id自增长int类型

  •  1
     
  •   crny520 · 2014-01-24 18:56:26 +08:00 · 4463 次点击
    这是一个创建于 1978 天前的主题,其中的信息可能已经有所发展或是发生改变。
    7 回复  |  直到 1970-01-01 08:00:00 +08:00
        1
    cyr1l   2014-01-24 19:33:09 +08:00
    Mongodb 的 id 不是数字型啊. 是 ObjectId .
    是 52ddc4d77d487c4f690000XXX 这样的. 没法自增长吧.

    实在有这个需求的, 可以虚拟一个 id 的 字段嘛. 保存前先看最后一个是啥, 然后 ++ , 效率肯定差就是的了.
        2
    lanceli   2014-01-24 19:38:51 +08:00 via iPhone
        3
    crny520   2014-01-24 19:42:28 +08:00
    @lanceli thanks...
        4
    crny520   2014-01-24 20:21:59 +08:00
    @lanceli 只能用createConnection数据库?不能用connect连数据库?
        5
    yyfearth   2014-01-25 04:18:22 +08:00 via iPad
    mongodb 官方说了 不建议这么做
        6
    crny520   2014-01-25 10:14:22 +08:00
    @yyfearth 52ddc4d77d487c4f690000XXX太恶心了。。。
        7
    yyfearth   2014-01-25 12:27:04 +08:00
    @crny520 我做了几个项目,在设计的时候都这么觉得的,所以都计划用 autoinc int,结果后面在实现都由于种种原因都换回来了
    另外你看他们如何实现自增的,你会觉得比 52ddc4d77d487c4f690000XXX 更恶心
    首先ObjectId是在同一个节点下自增的,如果你非要用int那么就会造成可并发和多节点的问题,当然还要影响性能
    如果你保证只在一节点上使用,那么你可以用 autoinc int: http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/
    (我是觉得很恶心的实现)
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2706 人在线   最高记录 5043   ·   Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 14ms · UTC 11:50 · PVG 19:50 · LAX 04:50 · JFK 07:50
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1