mongodb - 如果在bulkWrite期间mongodb中不存在记录,如何创建记录?
问题描述
服务器将接收大量数据。问题是如果数据库中不存在记录的字段名称,我需要创建记录。
我正在使用 mongoose 对 mongodb 执行操作。
db.getDb(async function (error, db) {
await db._models.Model.bulkWrite(
values.map((value) => {
const instance = new db._models.Model({
__v: 0,
});
return {
updateOne: {
filter: {
title: value,
_datasetId: dataset._id,
},
update: {
$set: {
_id: instance._id,
_datasetId: dataset._id,
title: tag,
createdBy: user._id,
createdAt: date,
updatedAt: date,
__v: instance.__v,
},
},
upsert: true,
},
};
})
);
我不想更新现有记录,但如果它不存在则创建记录。(如果存在带有 title 和 _datasetId 的记录,它应该跳过这些值)。
我怎样才能做到这一点?
解决方案
您已经设置 upsert:true ,如果 updateOne 找不到过滤器指定的文档,它将执行插入而不是更新...
推荐阅读
- c - sscanf 无法读取文本文件的最后一行
- sql - Sql 中的除法返回 0 或 NULL
- reactjs - React:从基于类的组件转变为基于功能的组件
- django - 导入 xlsx 中的 django 导入导出错误
- ios - UIPageViewController 在 SwiftUI 中滑动 1 次后停止工作
- c# - 如何过滤掉从 HTTP 网站获取的某些单词?
- gridjs - Can't change the pagination 'next' and 'prev' labels to my language in grid.js
- git - Git克隆多个特定分支
- java - 如何保持片段中的滚动位置?
- flutter - 颤振:showDatePicker 改变颜色