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

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

  •  
  •   lzt163 · Feb 18, 2014 · 5449 views
    This topic created in 4492 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
        1
    ceclinux  
       Feb 18, 2014
    我觉得。。。为什么要设计成这样呢,我会每次inc然后用的时候取2余数
    lzt163
        2
    lzt163  
    OP
       Feb 18, 2014
    @ceclinux 这样不是还是要作两次操作么 inc update?
    我希望可以一次操作 或者有原子性 比方说类似 findandmodify这类感觉
    ceclinux
        3
    ceclinux  
       Feb 19, 2014   ❤️ 1
    @lzt163 一次就行啊,存的时候当int存,用的时候%2使用。根本不用先取status,切换的时候直接status+1
    cevincheung
        4
    cevincheung  
       Feb 19, 2014
    可以直接update啊,如果不需要验证数据是否存在的话。
    shiniv
        5
    shiniv  
       Feb 19, 2014
    用位运算呗,简单方便。。
    gihnius
        6
    gihnius  
       Feb 19, 2014
    @lzt163 你连 update里面的 $inc 也算一次,真难伺候了,哈哈
    pilipala
        7
    pilipala  
       Feb 19, 2014
    只有$inc了, 位运算也需要先读出来,
    $inc 在mongodb 里面就是原子的,
    楼主自己看看书吧
    lzt163
        8
    lzt163  
    OP
       Feb 19, 2014
    @ceclinux 感谢 没有想到用的时候%2
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1807 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 16:13 · PVG 00:13 · LAX 09:13 · JFK 12:13
    ♥ Do have faith in what you're doing.