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

2014-02-18 21:54:44 +08:00
 lzt163
比如该记录有的id status两个字段
如何通过id 切换status的0/1状态
不用先取status数据再取反再update这样
4497 次点击
所在节点    MongoDB
8 条回复
ceclinux
2014-02-18 22:24:48 +08:00
我觉得。。。为什么要设计成这样呢,我会每次inc然后用的时候取2余数
lzt163
2014-02-18 23:23:14 +08:00
@ceclinux 这样不是还是要作两次操作么 inc update?
我希望可以一次操作 或者有原子性 比方说类似 findandmodify这类感觉
ceclinux
2014-02-19 00:18:46 +08:00
@lzt163 一次就行啊,存的时候当int存,用的时候%2使用。根本不用先取status,切换的时候直接status+1
cevincheung
2014-02-19 01:00:43 +08:00
可以直接update啊,如果不需要验证数据是否存在的话。
shiniv
2014-02-19 11:04:59 +08:00
用位运算呗,简单方便。。
gihnius
2014-02-19 11:48:57 +08:00
@lzt163 你连 update里面的 $inc 也算一次,真难伺候了,哈哈
pilipala
2014-02-19 19:44:57 +08:00
只有$inc了, 位运算也需要先读出来,
$inc 在mongodb 里面就是原子的,
楼主自己看看书吧
lzt163
2014-02-19 20:33:13 +08:00
@ceclinux 感谢 没有想到用的时候%2

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/100824

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX