mongodb - 如果现有文档的时间戳早于预设时间,则插入 mongo 文档 - 使用 upsert
问题描述
如果更新时间不超过现在 1 分钟,我需要更新现有文档。我有以下查询,但无论如何它仍然会继续更新现有文档。我该如何解决这种行为?
threats.upsert({
threatType: threatLevel,
username: userOrDeviceName,
"misc.updatedTime": {$lt: new Date(new Date() - 60000)}
}, {
$set: {
'misc.updatedTime': new Date(),
'misc.updatedBy': 'system',
},
$addToSet: {
serverAddr: { $each: destinations }
},
$inc: {
flowCount: destinations.length
},
$setOnInsert: {
threatState: "open",
'misc.createdTime': new Date(),
'misc.createdBy': 'system',
}
}
解决方案
推荐阅读
- linux - 如何仅交换每行中的数值
- javascript - What is correct/clean Switch (or functions in general) control flow?
- testing - Why is Flask-Mail actually sending messages during testing
- keycloak - Keycloak 限制每个领域的会话数
- json - 导航 JSON 路径
- c++ - 修改 Bellman-Ford 算法以维护基于成本的有序列表
- jquery - 如何使用 Ajax Api 修复 Google 距离矩阵 API 中的“跨源请求被阻止”
- sails.js - 根据后端 api 的 ui 输入,使用 Sails 应用程序版本 0.12 连接到动态 postgresql 数据库主机
- scala - NoSuchMethodError ArrayOps 试图运行基本的 Spark 作业
- c++ - 在一些范围更新后获得整数数组最终状态的有效算法是什么?