【发布时间】:2019-02-22 16:57:40
【问题描述】:
考虑一个简单的mongo文档结构:
{ _id, firstTime, lastTime }
客户端需要插入具有已知 ID 的文档,或更新现有文档。 'lastTime' 应始终设置为最近的时间。对于“firstTime”,如果正在插入文档,则“firstTime”应设置为当前时间。但是,如果文档已经创建,则“firstTime”保持不变。我想纯粹用 upserts 来做(以避免查找)。
我已经爬取了http://www.mongodb.org/display/DOCS/Updating,但我只是不知道如何完成该特定操作。
我不认为这是不合理的,有 $push 和 $addToSet 操作可以有效地在数组字段上执行此操作,但在简单字段上没有任何操作。好像应该有类似 $setIf 的操作。
【问题讨论】:
-
如果文档已经创建,该字段应保持不变它不称为 upsert(如您的标题)
-
@om-nom-nom 我已经概述了最简单的情况,我已经更新了描述,所以有一个字段一直在更新。
-
看起来这个功能是针对 2.4 的:jira.mongodb.org/browse/SERVER-340
标签: mongodb