繁体   English   中英

如何使用 nodejs 在 MongoDB 中将布尔属性设置为 true 或 false

[英]How can I set Boolean property to true or false in MongoDB with nodejs

我是后端开发的新手。 我正在使用带有 express 和 mongoose 的 nodejs 我已经成功地用主要包含文本的表单中的数据更新了 mongodb,所以<input type="text value="abcdefg">似乎工作正常。

我有一个属性字段isActive ,我希望它是布尔值并且值为truefalse

我试图这样做

<input type="text" value="true">

我认为这是错误的基于一些谷歌搜索( https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#boolean-attributes ),其中提到“值“真”和“假”不是允许布尔属性。要表示假值,必须完全省略该属性。” ..所以我尝试了复选框方法

<input type="checkbox" checked>

但在这里我得到 value = 'on' 并且它仍然在控制台中给我一些错误

messageFormat: undefined,
stringValue: '"on"',
kind: 'Boolean',
value: 'on',
path: 'isActive',
reason: CastError: Cast to boolean failed for value "on" (type string) at path "undefined"

有人可以告诉我如何定义输入字段以在 Mongodb 中获得truefalse值吗?

回答我自己的问题,以防万一它可以帮助像我这样的后端开发新手。

当服务器收到请求时,常规输入变量遵循此格式

databaseObject.name = request.body.name

我假设即使对于布尔值,它也是相同的方法,所以我试图这样做。

databaseObject.isActive = request.body.isActive其中表单中的isActive是复选框字段的结果。

对我有用的是这个..

databaseObject.isActive = request.body.isActive == "on" ? true : false;

当复选框被选中时返回“on”而不是true

这对其他人来说可能很明显,但对我来说却不是......所以也许这个响应可能会帮助一些可能尝试将输入中的所有值直接分配到正在保存到数据库中的对象的人。

如果有另一种方法可以做到这一点,我会欢迎更多的答案,因为这是我发现的,因为我的问题没有得到答复。 因此,欢迎提供更好的答案或确认上述内容是正确的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM