两种数据类型的数组以及如何更改它

时间:2017-07-06 18:23:45

标签: javascript mongodb mongoose mongoose-schema

const AssetSchema = new Schema({
  name: {
    type: String,
    required: [true, 'Name value is required'],
    unique: true
  },
  past:[[Number], Date]
});

我正在尝试保存一个数组,该数组包含另一个数字数组和每个数组的日期。这是可行的还是没有这么多?

我用这个更新数组:

assets[i].past.push([12,24], new Date(Date.now()).toISOString());

但我收到错误:

CastError: Cast to [number] failed for value "["2017-07-06T18:15:23.631Z"]" at path "past"

感谢您的帮助,Ed。

1 个答案:

答案 0 :(得分:0)

也许我错了,但我认为你不能做past:[[Number], Date]。 Mongoose似乎并没有像错误Cast to [number]

中所说的那样理解它

为什么不更明确地使用对象数组呢?

path: [{
    numbers: [Number],
    date: Date
}]

这是一个对象数组,其中每个对象包含一个数字数组和一个日期。

assets[i].past.push({ 
    numbers: [12,24], 
    date: new Date(Date.now()) // I don't think you need to use .toISOString()
});