【发布时间】:2018-05-31 09:34:13
【问题描述】:
我无法使用 mongolite 更新 mongo 中的布尔值。我在 r 中有一个布尔值(FALSE),我正在尝试更新 mongo 中当前值为 true(mongo bool)的字段。但是在使用 mongolite 进行更新命令后,mongo 中存储的布尔值 true 更改为字符串值 FALSE(R bool 类型)。
【问题讨论】:
我无法使用 mongolite 更新 mongo 中的布尔值。我在 r 中有一个布尔值(FALSE),我正在尝试更新 mongo 中当前值为 true(mongo bool)的字段。但是在使用 mongolite 进行更新命令后,mongo 中存储的布尔值 true 更改为字符串值 FALSE(R bool 类型)。
【问题讨论】:
mongolite 不会自动将 r 布尔值更新为 mongo 布尔值。
这会为我抛出一个Error: Invalid JSON object:
m$update('{"name":"foo", "$set":{"boolean":FALSE}}')
这会将FALSE 作为字符串插入:
m$update('{"name":"foo", "$set":{"boolean":"FALSE"}}')
这会将 false 插入为布尔值:
m$update('{"name":"foo", "$set":{"boolean":false}}')
如果您以编程方式进行更新查询,您可以执行以下操作:
```
my_boolean <- FALSE
my_updateQuery <- paste0('{"$set":{"boolean":',tolower(paste0(my_boolean)),'}}')
m$update('{"name":"foo", my_updateQuery)
```
【讨论】: