【问题标题】:Array of two datatypes and how to change it两种数据类型的数组以及如何更改它
【发布时间】:2017-07-07 04:04:58
【问题描述】:
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"

感谢您的帮助,埃德。

【问题讨论】:

    标签: javascript mongodb mongoose mongoose-schema


    【解决方案1】:

    也许我错了,但我不认为你可以做到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()
    });
    

    【讨论】:

      猜你喜欢
      • 2019-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-24
      • 2011-05-28
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多