推荐工具
› RoboMongo
推荐书目
› 50 Tips and Tricks for MongoDB Developers
Related Blogs
› Snail in a Turtleneck
lzt163
V2EX  ›  MongoDB

如何在 mongodb 里面做某个字段的 0/1(或两个状态)切换

  •  
  •   lzt163 · Feb 18, 2014 · 5812 views
    This topic created in 4649 days ago, the information mentioned may be changed or developed.
    比如该记录有的id status两个字段
    如何通过id 切换status的0/1状态
    不用先取status数据再取反再update这样
    8 replies  •  1970-01-01 08:00:00 +08:00
    ceclinux
    ceclinux
    Feb 18, 2014
    1
    我觉得。。。为什么要设计成这样呢,我会每次inc然后用的时候取2余数
    lzt163
    lzt163
    OP
    Feb 18, 2014
    2
    @ceclinux 这样不是还是要作两次操作么 inc update?
    我希望可以一次操作 或者有原子性 比方说类似 findandmodify这类感觉
    ceclinux
    ceclinux
    Feb 19, 2014❤️1
    3
    @lzt163 一次就行啊,存的时候当int存,用的时候%2使用。根本不用先取status,切换的时候直接status+1
    cevincheung
    cevincheung
    Feb 19, 2014
    4
    可以直接update啊,如果不需要验证数据是否存在的话。
    shiniv
    shiniv
    Feb 19, 2014
    5
    用位运算呗,简单方便。。
    gihnius
    gihnius
    Feb 19, 2014
    6
    @lzt163 你连 update里面的 $inc 也算一次,真难伺候了,哈哈
    pilipala
    pilipala
    Feb 19, 2014
    7
    只有$inc了, 位运算也需要先读出来,
    $inc 在mongodb 里面就是原子的,
    楼主自己看看书吧
    lzt163
    lzt163
    OP
    Feb 19, 2014
    8
    @ceclinux 感谢 没有想到用的时候%2
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2549 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 11:14 · PVG 19:14 · LAX 03:14 · JFK 06:14
    ♥ Do have faith in what you're doing.