Mongoose - 保存字符串数组

新手上路,请多包涵

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

(请注意,为了便于在此处编写,以下所有代码均已简化)

所以我声明了一个我拥有的人模式的变量:

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

架构本身如下所示:

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

当谈到保存它只是一个简单的:

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

所以使用邮递员我在正文中发送一个数组 - 但是每次我检查数据库时,它只显示一个包含整个数组的条目,即我如何发送它:

在此处输入图像描述

任何想法我应该做什么额外的?

原文由 userMod2 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 367
2 个回答

从我的评论中写下:

在 mongoose 中指定字符串数组的方法是这样的:

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

但是,这里的问题最有可能与 Postman 相关,因为它将“数组”作为字符串发送。您可以通过检查 req.body.tags 的类型来检查这一点,如下所示:

 console.log(typeof req.body.tags)

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

原文由 Ash 发布,翻译遵循 CC BY-SA 3.0 许可协议

我有一个类似的问题,在模型中,这样做:

 tags : {[String], default: undefined}

所以它默认为 undefined unstead 一个空数组,而不是这个:

 const person = new Person({
    tags : req.body.tags
});

做这个 :

 const person = new Person();
person.tags = req.body.tags;

原文由 Ilyes42 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题