MongoDB数组在数据库上变成字符串

时间:2019-10-24 16:48:26

标签: javascript node.js mongodb express

我对Mongo / express数组解析有问题。当我在节点控制台中进行console.log响应时,来自正文的数组似乎是正确的。但是问题是当我尝试使用insert.one方法将正文保存到mongo.db时,帖子被保存了,但是数组变成了字符串,这对我不利。

这是我要发送给mongo的内容(数据正常,我用console.log记录,这里的数组不是字符串)

{
  createdBy: this.userName,
  postContent: this.post,
  tags: this.tags,
  addedAt: new Date()
};

这就是存储在数据库中的内容

enter image description here

更新: 当我将数组硬编码为有效负载时,它在mongo中正确显示为数组。 但是对于动态数据当然仍然存在问题

2 个答案:

答案 0 :(得分:0)

您应该能够使用JSON解析和替换来强制它接受字符串作为数组,如下所示:

const array = JSON.parse(this.tags.replace(/'/g, '"'));

然后将标签设置为array的值:

tags: array

答案 1 :(得分:0)

使用数据类型作为数组-4并使用.pretty()。

通常,如果使用find()方法,则以密集格式返回数据。 通过使用cursor.pretty(),您可以将光标设置为以人类易于解析的格式返回数据