我正在使用mongoose开发我的Node微服务应用。
我有一个包含'createdAt'字段的模型,该字段是自动生成的:
const mongoose = require('mongoose');
const recordSchema = new mongoose.Schema({
source: {
type: String,
required: true,
trim: true,
lowercase: true
},
coin: {
type: String,
required: true,
trim: true,
lowercase: true
},
rate: {
type: Number,
required: true
},
isError: {
type: Boolean,
required: true
},
}, { timestamps: { createdAt: 'created_at' } });
module.exports = mongoose.model('Record', recordSchema);
我尝试将一大批文档插入其中,就像这样:
// Save the fetched data into the database.
const saveCoinsData = (coinsData) => {
RecordModel.collection.insertMany(coinsData, (err) => {
if (err) { logger.error(err); }
});
};
由于某些原因,如果我插入单个文档,则会按预期创建'createdAt'。但是如果我使用insertMany函数,则不起作用,也不会创建'createdAt'(或created_at)。
这是正常的吗?
这是mongoose中的错误吗?
RecordModel.collection.insertMany
,而是尝试使用RecordModel.insertMany
。 - Jonathan NielsenNotification.insertMany
,其中Notification
是上面导出的模型架构。对于我的情况,updatedAt
被填充了,但是createdAt
时间戳没有被填充。现在,我通过简单地手动将createdAt: new Date()
添加到我在insertMany
中使用的每个文档中来解决了这个问题。 - SKeneycreatedAt: Date.now()
来解决它,但我很想弄清楚如何通过模式定义中的timestamps
选项自动管理它。 - SKeney