我无法使用Mongoose将字符串数组保存到数据库中.

(注意:为了便于编写,下面的所有代码都被简化了)

所以我声明了一个person模式的变量:

var newPerson = new Person ({
    tags: req.body.tags
});

模式本身看起来像:

var personSchema = new mongoose.Schema({
  tags: Array
});

说到储蓄,它只是一个简单的问题:

newPerson.save(function(err) {
    //basic return of json
});

因此,我使用Postman在正文中发送了一个数组,但每次我判断数据库时,它只会显示一个包含整个数组的条目,即我如何发送它:

enter image description here

你知道我该怎么做吗?

推荐答案

从我的 comments 中总结:

在mongoose中指定字符串数组的方法如下:

var personSchema = new mongoose.Schema({
tags: [{
    type: String
}]

然而,这里的问题很可能与Postman有关,因为它将"数组"作为字符串发送.您可以通过判断req.body.tags的类型来判断这一点,如下所示:

console.log(typeof req.body.tags)

如果返回字符串,请确保将Postman中的内容类型设置为JSON,如this屏幕截图所示,而不是默认的"表单数据"选项.

Node.js相关问答推荐

CloudTasksClient在Firebase Function % s onDocumentCreated中实例化时导致错误

使用xml-crypto时出现NodeJS XPath解析错误

是否可以在MongoDB中比较和匹配引用文档中的字段

后端如何保护数据不被用户提取其他用户的数据?

无法使用 Express 设置会话 cookie 的过期日期

Typescript 正则表达式:过滤器返回空

如何使用 NodeJS 加密模块将 ECDH 密钥转换为 PEM 格式

看起来这段代码try GET 请求发送的值变为空白

每秒从套接字传来的数据有哪些存储方式?

如何找到特定文档并更新数组中特定键的值?

(Mongoose) 删除 TTL 字段失败

nuxt:在 docker 镜像中找不到

NodeJS 后端发布请求将数据作为NULL值发布到 SQL Server 表

在express js模型中将js转换为Typescript 时Typescript 错误

Mongoose,如何一次更新多个?

如何为一个网站实现这 2 个网址.即 www.administrator.sitename.com 和 www.sitename.com?

使用 $in 查询时,如何获取 mongoDB 中每个唯一 ID 的 n 个文档?

使用 Node.JS,如何按时间顺序获取文件列表?

用于排除多个文件的 node.js glob 模式

使用 node 的内置调试器判断变量?