对于数组,转换为字符串失败

时间:2018-05-24 12:35:00

标签: javascript node.js mongodb mongoose

所以,我正在尝试从数组的元素创建一个文档,但它不断抛出Document Validation Error

架构是这样的:

userId: String,
terms: [{
  value: String,
  system: String
}],
group: String

valuesterms

我有一个['hello', 'hey', 'hi']数组

现在,我希望能够使用数组中的createvalues文档,如下所示:

{
  userId: 'foo',
  terms: [{value: 'hello'}, {value: 'hey'}, {value: 'hi'}],
  group: 'bar'
}

我试图这样做但失败的方式:

let arr = ['hello', 'hey', 'hi'];
Document.create({userId: 'somevalue', terms: {value: {$in: arr}}}) // validation error

1 个答案:

答案 0 :(得分:2)

使用.map()

let arr = ['hello', 'hey', 'hi'];
Document.create({
  userId: 'somevalue',
  terms: arr.map(value => ({ value }) )
})

这实际上会将数组内容转换为:

[{value: 'hello'}, {value: 'hey'}, {value: 'hi'}]

并在创建文档时使用该值。