javascript - Mongoose insertMany - 缺少 createdAt
问题描述
我在我的节点微服务应用程序中使用猫鼬。
我有一个自动创建的带有“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)。
这是正常的吗?
这是猫鼬中的错误吗?
解决方案
您在这里没有使用猫鼬模式。您通过使用 [schema].collection.[method] 来使用默认节点驱动程序。参考这一点,您可以
RecordModel.insertMany
改用它,它应该添加时间戳。
推荐阅读
- c# - 覆盖共享项目类中的属性
- javascript - 如何防止依赖项改变作为参数传入的对象而无需每次都重新克隆
- python - 打印哪个 Radio-ToggleButton 处于关闭状态
- visual-studio-code - 如何调试使用共享库的 Rust 可执行文件?
- vba - 如何使用vba获取同一单元格中的百分比值
- javascript - 如何在节点上同步处理从前端 API 接收的文件
- chocolatey - 在哪里以及如何在配置文件中将`--force`选项传递给chocolatey?
- karate - 使用 karate.call 和条件逻辑
- python - 如何使用有限数据的数学约束来约束 lmfit?
- ruby - 添加具有 nil 值的新动态属性