javascript - mongodb在保存数组时为键名添加括号
问题描述
我正在使用 Monk 和 Express 应用程序将数组更新/保存到 Mongodb。我正在保存的对象类似于
let entry = {"a": "string", "b":["stringa", "stringb"]}.
保存后,它在数据库中显示为
{"a": string, "b[]": ["stringa", "stringb"]}
我使用 MongoDB Compass 检查了架构,它有一个字符串 b 未定义,我没有设置架构。数据来自创建数组的多选下拉表单字段。我正在使用 Ajax 将其保存到数据库:
$.ajax({
type: 'PUT',
data: entry,
url: dbUrl + dbCollection,
dataType: 'JSON' }).done(function(res) {});
我在此之前检查条目(使用 chrome 控制台日志,它显示正确),保存后,查看数据库,我得到两个名为 b、b 和 b[] 的项目,其中 b 是“”和 b[]包含数组。
为什么要添加括号,我该怎么做才能避免它?
编辑:原来是 jquery 添加括号,而不是 mongo,请参阅: $.ajax appending [ ] to the key issue with brackets in jQuery Form Data when sent data as json
在链接中有解决方法。
解决方案
推荐阅读
- go - 通过 SSH 流式传输 Stdout 和 Stderr,操作流,然后打印到本地 Stdout 和 Stderr
- google-api - 如何使用方法事件:使用google-calendar-api获取具有指定创建时间或更新时间的事件?
- mysql - MYSQL 查询不返回 BETWEEN 的结果,但它返回小于和等于子查询的结果
- java - Double 无法取消引用,解析二维数组
- c++ - 对齐究竟如何影响内存布局和放置新的行为?
- git - `reflog` 是否维护被创建、移动、操作、合并或删除的分支名称的历史记录?
- angular - 角垫表消除波纹
- azure - 使 Azure 身份验证在没有密码提示的情况下静默运行
- javascript - 如何创建 vuetify 工具栏链接下拉菜单?
- sql - 如何在列中计算 ID 出现的次数?