gpt4 book ai didi

mongodb - 在 mongo 中设置单个位,以存储位掩码

转载 作者:可可西里 更新时间:2023-11-01 09:47:04 27 4
gpt4 key购买 nike

我想将一些标志存储到 mongodb 中。现在我有以下内容:

> db.test.save({a:0x1})
> db.test.save({a:0x3})
> db.test.save({a:0x2})
> db.test.save({a:0x2})
> db.test.save({a:0x4})
> db.test.save({a:0x5})
> db.test.find({'$where': "this.a & 0x1"})

有没有更有效的方法?

最佳答案

虽然您可以这样做,但我建议为每个标志使用单独的 bool 字段。这将占用更多空间,但查询速度会更快,因为它不会使用 javascript,并且可以在需要时使用索引。如果您的应用程序的其他部分需要位域,您可以像这样使它们保持最新(假设 a、b、c... 映射到位 0、1、2...):

db.c.update({_id:ID}, {$set:{a:true}, $bit:{bits: {or: 0x1}}})
db.c.update({_id:ID}, {$set:{c:false}, $bit:{bits: {and: ~0x8}}})

关于mongodb - 在 mongo 中设置单个位,以存储位掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7257896/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com