mongodb - 在 MongoDB 中使用按位或
问题描述
我正在做一个项目,我想在我的 Mongo 数据库中切换 0 和 1 之间的值。我已经将每个值从默认的 double 设置为 32 位 Int。但是,每次运行此代码时,都会出现此错误:
> db.players.update({name: "Patrick Mahomes"}, {$bit: {active: {xor:1}}})
WriteResult({
"nMatched" : 0,
"nUpserted" : 0,
"nModified" : 0,
"writeError" : {
"code" : 2,
"errmsg" : "The $bit modifier field must be an Integer(32/64 bit); a
'double' is not supported here: {xor: 1.0}"
}
知道为什么会这样吗?当我查询活动字段类型时,它会返回我数据库中的所有对象。
> db.players.find({active: {$type:16}})
这最终将成为在网站上单击按钮以在两种不同状态之间切换的功能。
解决方案
您能否尝试使用NumberInt提供价值。
db.players.update({name: "Patrick Mahomes"}, {$bit: {active: {xor:NumberInt(1)}}})
在此处检查文档。
推荐阅读
- apache-spark - 从 Spark 获取 Impala 表 varchar 列的长度
- java - 优化源代码以减少执行时间
- r - 如何删除包含两列之间顺序条件的行
- python - 无法用 2captcha python 解决 hcaptcha
- go - 自定义功能在模板中不起作用
- apache-spark - Spark on Kubernetes with Minio - Postgres -> Minio - 无法创建执行程序,因为
- python - 如何使用 ansible playbook 检查 linux 磁盘大小小于 10GB?
- recursion - 球拍彩虹形状递归
- teamcity - 未找到 TeamCity 安装
- tabulator - Tabulator V5 Ajax 排序