首页 > 解决方案 > 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

在链接中有解决方法。

标签: javascriptjquerynode.jsajaxmongodb

解决方案


推荐阅读